import { AppState, QuestionAnnotation, ObjectAnnotation, Action } from '../redux/reducer'; import { Coordinate, FeatureID, Json, SchemaID } from '../types'; import { CanonicalGeometry } from './convert'; export interface CreateQuestionAnnotationResult { question: { featureId: FeatureID; }; answers: { [schemaID: SchemaID]: { featureId: FeatureID; }; }; } export interface UpdateQuestionAnnotationResult { question: { featureId: FeatureID; }; answers: { [schemaID: SchemaID]: { featureId: FeatureID; }; }; } declare class AnnotationsInternal { createQuestionAnnotation(question: SchemaID, answers: SchemaID[], parentId?: FeatureID): CreateQuestionAnnotationResult; updateQuestionAnnotation(question: FeatureID, answers: SchemaID[], parentId?: FeatureID): UpdateQuestionAnnotationResult; createObjectAnnotation(canonicalizeFunc: (content: Json) => CanonicalGeometry): (object: SchemaID, content: Json) => FeatureID; updateObjectAnnotation(canonicalizeFunc: (content: Json) => CanonicalGeometry): (object: FeatureID, content: Json) => FeatureID; deleteObjectAnnotation(id: FeatureID): void; deleteQuestionAnnotation(id: FeatureID): FeatureID[]; deleteOptionAnnotation(questionId: FeatureID, optionId: FeatureID): void; getDeletionList(id: FeatureID): { objects: FeatureID[]; questions: FeatureID[]; options: { questionId: FeatureID; optionId: FeatureID; }[]; }; getQuestionAnnotation(featureID: FeatureID): QuestionAnnotation; getObjectAnnotation(featureID: FeatureID): ObjectAnnotation; existsQuestionAnnotation(schemaId: SchemaID, parentId?: FeatureID): boolean; _createFeatureId(): string; _dispatch(action: Action): void; _getState(): AppState; } export declare const annotationsInternal: AnnotationsInternal; declare class Annotations { createRadioQuestionAnnotation(question: SchemaID, answers: SchemaID, parentId?: FeatureID): CreateQuestionAnnotationResult; updateRadioQuestionAnnotation(question: FeatureID, answers: SchemaID, parentId?: FeatureID): UpdateQuestionAnnotationResult; createChecklistQuestionAnnotation(question: SchemaID, answers: SchemaID[], parentId?: FeatureID): CreateQuestionAnnotationResult; updateChecklistQuestionAnnotation(question: FeatureID, answers: SchemaID[], parentId?: FeatureID): UpdateQuestionAnnotationResult; createTextAnnotation(question: SchemaID, answer: string, parentId?: FeatureID): FeatureID; updateTextAnnotation(question: FeatureID, answer: string, parentId?: FeatureID): FeatureID; createBoundingBoxAnnotation: (objectType: SchemaID, content: Coordinate[]) => FeatureID; updateBoundingBoxAnnotation: (objectId: FeatureID, content: Coordinate[]) => FeatureID; createPolygonAnnotation: (objectType: SchemaID, content: Coordinate[]) => FeatureID; updatePolygonAnnotation: (objectId: FeatureID, content: Coordinate[]) => FeatureID; createPolylineAnnotation: (objectType: SchemaID, content: Coordinate[]) => FeatureID; updatePolylineAnnotation: (objectId: FeatureID, content: Coordinate[]) => FeatureID; createPointAnnotation: (objectType: SchemaID, content: Coordinate) => FeatureID; updatePointAnnotation: (objectId: FeatureID, content: Coordinate) => FeatureID; createSegmentationAnnotation: (objectType: SchemaID, content: Coordinate[][]) => FeatureID; updateSegmentationAnnotation: (objectId: FeatureID, content: Coordinate[][]) => FeatureID; submitAnnotationsForAsset(): Promise<{ dataRowId: string; data: string; label: string | undefined; } | undefined>; deleteAnnotation(id: FeatureID): FeatureID[]; } export declare const annotations: Annotations; export declare function debugState(): AppState; export {};