import { AdjacentBoundaryBehaviour, Annotation, AnnotationCollection, AnnotationConstructor, AnnotationJSON } from "./internals"; export declare function getConverterFor(from: typeof Document | string, to: typeof Document | string): never | ((doc: Document) => Document); export declare function getConverterClassFor(from: typeof Document | string, to: typeof Document | string): null | typeof Document; export declare function mergeRanges(_ranges: Array<{ start: number; end: number; }>): { start: number; end: number; }[]; export declare class Document { static contentType: string; static schema: Array>; static defineConverterTo(to: typeof Document, converter: (doc: Document) => Document): void; content: string; readonly contentType: string; annotations: Array>; changeListeners: Array<() => void>; private pendingChangeEvent; constructor(options: { content: string; annotations: Array>; }); addEventListener(eventName: string, func: () => void): void; addAnnotations(...annotations: Array | AnnotationJSON>): void; where(filter: { [key: string]: any; } | ((annotation: Annotation) => boolean)): AnnotationCollection; all(): AnnotationCollection; removeAnnotation(annotation: Annotation): Annotation | void; removeAnnotations(_annotations: Array>): void; replaceAnnotation(annotation: Annotation, ...newAnnotations: Array>): Array>; insertText(start: number, text: string, behaviour?: AdjacentBoundaryBehaviour): void; deleteText(start: number, end: number): void; slice(start: number, end: number, filter?: (annotation: Annotation) => boolean): Document; cut(start: number, end: number, filter?: (annotation: Annotation) => boolean): Document; convertTo(to: To): InstanceType | never; toJSON(): { content: string; contentType: string; annotations: { id: string; type: string; start: number; end: number; attributes: any; }[]; schema: string[]; }; clone(): Document; match(regex: RegExp, start?: number, end?: number): Array<{ start: number; end: number; matches: string[]; }>; deleteTextRanges(ranges: Array<{ start: number; end: number; }>): void; canonical(): Document; equals(docToCompare: Document): boolean; withStableIds(): this; private createAnnotation; private triggerChange; } //# sourceMappingURL=document.d.ts.map