import { Annotation } from './Annotation'; import { User } from './User'; import { PresenceProvider } from '../presence'; import { History, HoverState, SelectionState, Store, UndoStack, UserSelectActionExpression, ViewportState } from '../state'; import { LifecycleEvents } from '../lifecycle'; import { FormatAdapter } from './FormatAdapter'; import { DrawingStyleExpression } from './DrawingStyle'; import { Filter } from './Filter'; /** * Base annotator interface * @template I - internal core data model * @template E - external adapted representation */ export interface Annotator { addAnnotation(annotation: Partial): void; cancelSelected(): void; canRedo(): boolean; canUndo(): boolean; clearAnnotations(): void; destroy(): void; getAnnotationById(id: string): E | undefined; getAnnotations(): E[]; getHistory(): History; getSelected(): E[]; getUser(): User; loadAnnotations(url: string, replace?: boolean): Promise; redo(): void; removeAnnotation(arg: Partial | string): E | undefined; setAnnotations(annotations: Partial[], replace?: boolean): void; setFilter(filter: Filter | undefined): void; setPresenceProvider?(provider: PresenceProvider): void; setSelected(arg?: string | string[], editable?: boolean): void; setStyle(style: DrawingStyleExpression | undefined): void; setUser(user: User): void; setUserSelectAction(action: UserSelectActionExpression): void; setVisible(visible: boolean): void; undo(): void; updateAnnotation(annotation: Partial): E; on>(event: T, callback: LifecycleEvents[T]): void; off>(event: T, callback: LifecycleEvents[T]): void; state: AnnotatorState; } export interface AnnotatorState { store: Store; selection: SelectionState; hover: HoverState; viewport: ViewportState; } export declare const createBaseAnnotator: (state: AnnotatorState, undoStack: UndoStack, adapter?: FormatAdapter) => { addAnnotation: (annotation: E) => void; cancelSelected: () => void; canRedo: () => boolean; canUndo: () => boolean; clearAnnotations: () => void; getAnnotationById: (id: string) => E | undefined; getAnnotations: () => E[]; getHistory: () => History; getSelected: () => E[]; loadAnnotations: (url: string, replace?: boolean) => Promise; redo: () => void; removeAnnotation: (arg: E | string) => E | undefined; setAnnotations: (annotations: E[], replace?: boolean) => void; setSelected: (arg?: string | string[], editable?: boolean) => void; setUserSelectAction: (action: UserSelectActionExpression) => void; undo: () => void; updateAnnotation: (updated: E) => E; }; //# sourceMappingURL=Annotator.d.ts.map