UNPKG

json-joy

Version:

Collection of libraries for building collaborative editing apps.

25 lines (24 loc) 1.42 kB
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; }