@gdyfe/ssml
Version:
17 lines (16 loc) • 880 B
TypeScript
import type { IDomEditor } from '@wangeditor/editor';
import type { SSMLBaseElement } from './base';
type Result<T, Output> = T extends undefined ? undefined : Output;
export declare function getEmitter<T extends IDomEditor | undefined>(editor: T): Result<T, EventBus>;
interface EmitterEventMap {
'ssml-remark-click': [editor: IDomEditor, elem: SSMLBaseElement];
'ssml-update': [editor: IDomEditor];
}
type EmitterMethod<K extends keyof EmitterEventMap> = (...args: EmitterEventMap[K]) => void;
interface EventBus {
emit<K extends keyof EmitterEventMap>(type: K, ...args: EmitterEventMap[K]): void;
off<K extends keyof EmitterEventMap>(type: K, listener: EmitterMethod<K>): void;
on<K extends keyof EmitterEventMap>(type: K, listener: EmitterMethod<K>): void;
once<K extends keyof EmitterEventMap>(type: K, listener: EmitterMethod<K>): void;
}
export {};