import { default as Annotation } from './Annotation/logic/Annotation';
import { AnnotationStatus, AnnotationTool } from './models';
import { default as NotificationType } from './models/NotificationType';
export type AllowedTools = {
    bbox: boolean;
    junk: boolean;
    line: boolean;
    point: boolean;
    polygon: boolean;
};
export type AnnotationSettings = {
    minimalArea?: number;
    canHaveMultipleLabels: boolean;
    canEdit?: boolean;
    canCreate: boolean;
    canLabel: boolean;
};
export type ExternalAnnotation = {
    externalId?: string;
    annoTime?: number;
    coordinates: Point[];
    status: AnnotationStatus;
    labelIds: number[];
    type: AnnotationTool;
};
export type Label = {
    id: number;
    name: string;
    description: string;
    color?: string;
};
export type Point = {
    x: number;
    y: number;
};
export type PolygonOperationResult = {
    polygonsToCreate: ToolCoordinates[];
    annotationsToDelete: Annotation[];
};
export type SIANotification = {
    title: string;
    message: string;
    type: NotificationType;
};
export type ToolCoordinates = {
    coordinates: Point[];
    type: AnnotationTool;
};
export type UiConfig = {
    strokeWidth: number;
    nodeRadius: number;
    imageCentered: boolean;
};
export type Vector2 = {
    x: number;
    y: number;
};
export type TimeTravelChanges = {
    addedAnnotations: Annotation[];
    removedAnnotations: Annotation[];
    changedAnnotations: Annotation[];
};
