json-joy
Version:
Collection of libraries for building collaborative editing apps.
25 lines (24 loc) • 1.42 kB
TypeScript
import { SubscriptionEventTarget } from '../../util/events/TypedEventTarget';
import type { PeritextEventDetailMap, CursorDetail, FormatDetail, DeleteDetail, MarkerDetail, BufferDetail } from './types';
export type PeritextEventMap = {
[K in keyof PeritextEventDetailMap]: CustomEvent<PeritextEventDetailMap[K]>;
};
export type PeritextEventHandlerMap = {
[K in keyof PeritextEventDetailMap]: (event: CustomEvent<PeritextEventDetailMap[K]>) => void;
};
export declare class PeritextEventTarget extends SubscriptionEventTarget<PeritextEventMap> {
readonly id: number;
defaults: Partial<PeritextEventHandlerMap>;
dispatch<K extends keyof Omit<PeritextEventDetailMap, 'change'>>(type: K, detail: Omit<PeritextEventDetailMap, 'change'>[K]): void;
change(ev?: CustomEvent<any>): void;
insert(text: string): void;
delete(len: DeleteDetail['len'], unit?: DeleteDetail['unit'], at?: DeleteDetail['at']): void;
delete(detail: DeleteDetail): void;
cursor(detail: CursorDetail): void;
move(len: number, unit?: CursorDetail['unit'], edge?: CursorDetail['edge']): void;
format(type: FormatDetail['type'], behavior?: FormatDetail['behavior'], data?: FormatDetail['data']): void;
format(detail: FormatDetail): void;
marker(detail: MarkerDetail): void;
buffer(action: BufferDetail['action'], format?: BufferDetail['format']): void;
buffer(detail: BufferDetail): void;
}