///
import type { AnnotationData, ToolName } from '@labelu/image';
import type { TextAnnotationEntity, TagAnnotationEntity, TextAnnotationType, TagAnnotationType } from '@labelu/interface';
export declare type GlobalAnnotation = TextAnnotationEntity | TagAnnotationEntity;
export declare type GlobalAnnotationPayload = Record;
export declare type AnnotationDataInUI = AnnotationData & {
tool: ToolName;
};
export declare type AllAnnotationType = TextAnnotationType | TagAnnotationType | ToolName;
export declare type AnnotationWithTool = (GlobalAnnotation | AnnotationData) & {
tool: AllAnnotationType;
};
export declare type AllAnnotationMapping = Record;
export interface AnnotationContextType {
annotationsWithGlobal: AllAnnotationMapping;
sortedImageAnnotations: AnnotationDataInUI[];
selectedAnnotation: AnnotationDataInUI | undefined;
preAnnotationsWithGlobal?: Partial>;
allAnnotationsMapping: AllAnnotationMapping;
onAnnotationRemove: (annotation: AnnotationDataInUI) => void;
onAnnotationsChange: (annotations: AnnotationWithTool[]) => void;
onAnnotationChange: (annotation: AnnotationWithTool) => void;
onAnnotationsRemove: (annotations: AnnotationDataInUI[]) => void;
onAnnotationClear: () => void;
disabled?: boolean;
orderVisible: boolean;
onOrderVisibleChange: (visible: boolean) => void;
}
export declare const AnnotationContext: import("react").Context;
export declare function useAnnotationCtx(): AnnotationContextType;
//# sourceMappingURL=annotation.context.d.ts.map