import { Annotation } from '../model'; import { Origin, StoreChangeEvent, StoreObserveOptions } from './StoreObserver'; type AnnotationBodyIdentifier = { id: string; annotation: string; }; export type Store = ReturnType>; export declare const createStore: () => { addAnnotation: (annotation: Partial, origin?: Origin) => void; addBody: (body: T["bodies"][number], origin?: Origin) => void; all: () => T[]; bulkAddAnnotations: (annotations: Partial[], replace?: boolean, origin?: Origin) => void; bulkDeleteAnnotations: (annotationsOrIds: (T | string)[], origin?: Origin) => void; bulkDeleteBodies: (bodies: AnnotationBodyIdentifier[], origin?: Origin) => void; bulkUpdateAnnotations: (annotations: T[], origin?: Origin) => void; bulkUpdateBodies: (bodies: Array, origin?: Origin) => void; bulkUpdateTargets: (targets: Array, origin?: Origin) => void; bulkUpsertAnnotations: (annotations: Partial[], origin?: Origin) => void; clear: (origin?: Origin) => void; deleteAnnotation: (annotationOrId: T | string, origin?: Origin) => void; deleteBody: (body: AnnotationBodyIdentifier, origin?: Origin) => void; getAnnotation: (id: string) => T | undefined; getBody: (id: string) => T["bodies"][number] | undefined; observe: (onChange: { (event: StoreChangeEvent): void; }, options?: StoreObserveOptions) => void; unobserve: (onChange: { (event: StoreChangeEvent): void; }) => void; updateAnnotation: (arg1: string | T, arg2?: T | Origin, arg3?: Origin) => void; updateBody: (oldBodyId: AnnotationBodyIdentifier, newBody: T["bodies"][number], origin?: Origin) => void; updateTarget: (target: T["target"], origin?: Origin) => void; upsertAnnotation: (annotation: T, origin?: Origin) => void; }; export {}; //# sourceMappingURL=Store.d.ts.map