import { Annotation, FormatAdapter } from '../model'; import { Store } from './Store'; export interface Selection { selected: { id: string; editable?: boolean; }[]; event?: PointerEvent | KeyboardEvent; } export type SelectionState = ReturnType>; export declare enum UserSelectAction { EDIT = "EDIT",// Make annotation target(s) editable on pointer select SELECT = "SELECT",// Just select, but don't make editable NONE = "NONE" } export type UserSelectActionExpression = UserSelectAction | ((a: T) => UserSelectAction); export declare const createSelectionState: (store: Store, defaultSelectionAction?: UserSelectActionExpression, adapter?: FormatAdapter) => { readonly event: PointerEvent | KeyboardEvent; readonly selected: { id: string; editable?: boolean; }[]; readonly userSelectAction: UserSelectActionExpression; clear: () => void; evalSelectAction: (annotation: I) => UserSelectAction; isEmpty: () => boolean; isSelected: (annotationOrId: I | string) => boolean; setSelected: (idOrIds: string | string[], editable?: boolean) => void; setUserSelectAction: (action: UserSelectActionExpression | undefined) => void; subscribe: any; userSelect: (idOrIds: string | string[], event?: Selection["event"]) => void; }; export declare const onUserSelect: (annotation: I, action?: UserSelectActionExpression, adapter?: FormatAdapter) => UserSelectAction; //# sourceMappingURL=Selection.d.ts.map