import { NonDeletedExcalidrawElement } from "../element/types";
export declare const hasBackground: (type: string) => boolean;
export declare const hasStrokeColor: (type: string) => boolean;
export declare const hasStrokeWidth: (type: string) => boolean;
export declare const hasStrokeStyle: (type: string) => boolean;
export declare const canChangeRoundness: (type: string) => boolean;
export declare const hasText: (type: string) => boolean;
export declare const canHaveArrowheads: (type: string) => boolean;
export declare const getElementAtPosition: (elements: readonly NonDeletedExcalidrawElement[], isAtPositionFn: (element: NonDeletedExcalidrawElement) => boolean) => (Readonly<{
    id: string;
    x: number;
    y: number;
    strokeColor: string;
    backgroundColor: string;
    fillStyle: import("../element/types").FillStyle;
    strokeWidth: number;
    strokeStyle: import("../element/types").StrokeStyle;
    roundness: {
        type: ValueOf<{
            readonly LEGACY: 1;
            readonly PROPORTIONAL_RADIUS: 2;
            readonly ADAPTIVE_RADIUS: 3;
        }>;
        value?: number | undefined;
    } | null;
    roughness: number;
    opacity: number;
    width: number;
    height: number;
    angle: number;
    seed: number;
    version: number;
    versionNonce: number;
    isDeleted: boolean;
    groupIds: readonly string[];
    boundElements: readonly Readonly<{
        id: string;
        type: "arrow" | "text";
    }>[] | null;
    updated: number;
    link: string | null;
    locked: boolean;
    customData?: Record<string, any> | undefined;
}> & Readonly<{
    type: "line" | "arrow";
    points: readonly (readonly [number, number])[];
    lastCommittedPoint: readonly [number, number] | null;
    startBinding: import("../element/types").PointBinding | null;
    endBinding: import("../element/types").PointBinding | null;
    startArrowhead: "bar" | "arrow" | "dot" | "triangle" | null;
    endArrowhead: "bar" | "arrow" | "dot" | "triangle" | null;
}> & {
    isDeleted: boolean;
}) | (Readonly<{
    id: string;
    x: number;
    y: number;
    strokeColor: string;
    backgroundColor: string;
    fillStyle: import("../element/types").FillStyle;
    strokeWidth: number;
    strokeStyle: import("../element/types").StrokeStyle;
    roundness: {
        type: ValueOf<{
            readonly LEGACY: 1;
            readonly PROPORTIONAL_RADIUS: 2;
            readonly ADAPTIVE_RADIUS: 3;
        }>;
        value?: number | undefined;
    } | null;
    roughness: number;
    opacity: number;
    width: number;
    height: number;
    angle: number;
    seed: number;
    version: number;
    versionNonce: number;
    isDeleted: boolean;
    groupIds: readonly string[];
    boundElements: readonly Readonly<{
        id: string;
        type: "arrow" | "text";
    }>[] | null;
    updated: number;
    link: string | null;
    locked: boolean;
    customData?: Record<string, any> | undefined;
}> & {
    type: "selection";
} & {
    isDeleted: boolean;
}) | (Readonly<{
    id: string;
    x: number;
    y: number;
    strokeColor: string;
    backgroundColor: string;
    fillStyle: import("../element/types").FillStyle;
    strokeWidth: number;
    strokeStyle: import("../element/types").StrokeStyle;
    roundness: {
        type: ValueOf<{
            readonly LEGACY: 1;
            readonly PROPORTIONAL_RADIUS: 2;
            readonly ADAPTIVE_RADIUS: 3;
        }>;
        value?: number | undefined;
    } | null;
    roughness: number;
    opacity: number;
    width: number;
    height: number;
    angle: number;
    seed: number;
    version: number;
    versionNonce: number;
    isDeleted: boolean;
    groupIds: readonly string[];
    boundElements: readonly Readonly<{
        id: string;
        type: "arrow" | "text";
    }>[] | null;
    updated: number;
    link: string | null;
    locked: boolean;
    customData?: Record<string, any> | undefined;
}> & {
    type: "rectangle";
} & {
    isDeleted: boolean;
}) | (Readonly<{
    id: string;
    x: number;
    y: number;
    strokeColor: string;
    backgroundColor: string;
    fillStyle: import("../element/types").FillStyle;
    strokeWidth: number;
    strokeStyle: import("../element/types").StrokeStyle;
    roundness: {
        type: ValueOf<{
            readonly LEGACY: 1;
            readonly PROPORTIONAL_RADIUS: 2;
            readonly ADAPTIVE_RADIUS: 3;
        }>;
        value?: number | undefined;
    } | null;
    roughness: number;
    opacity: number;
    width: number;
    height: number;
    angle: number;
    seed: number;
    version: number;
    versionNonce: number;
    isDeleted: boolean;
    groupIds: readonly string[];
    boundElements: readonly Readonly<{
        id: string;
        type: "arrow" | "text";
    }>[] | null;
    updated: number;
    link: string | null;
    locked: boolean;
    customData?: Record<string, any> | undefined;
}> & {
    type: "diamond";
} & {
    isDeleted: boolean;
}) | (Readonly<{
    id: string;
    x: number;
    y: number;
    strokeColor: string;
    backgroundColor: string;
    fillStyle: import("../element/types").FillStyle;
    strokeWidth: number;
    strokeStyle: import("../element/types").StrokeStyle;
    roundness: {
        type: ValueOf<{
            readonly LEGACY: 1;
            readonly PROPORTIONAL_RADIUS: 2;
            readonly ADAPTIVE_RADIUS: 3;
        }>;
        value?: number | undefined;
    } | null;
    roughness: number;
    opacity: number;
    width: number;
    height: number;
    angle: number;
    seed: number;
    version: number;
    versionNonce: number;
    isDeleted: boolean;
    groupIds: readonly string[];
    boundElements: readonly Readonly<{
        id: string;
        type: "arrow" | "text";
    }>[] | null;
    updated: number;
    link: string | null;
    locked: boolean;
    customData?: Record<string, any> | undefined;
}> & {
    type: "ellipse";
} & {
    isDeleted: boolean;
}) | (Readonly<{
    id: string;
    x: number;
    y: number;
    strokeColor: string;
    backgroundColor: string;
    fillStyle: import("../element/types").FillStyle;
    strokeWidth: number;
    strokeStyle: import("../element/types").StrokeStyle;
    roundness: {
        type: ValueOf<{
            readonly LEGACY: 1;
            readonly PROPORTIONAL_RADIUS: 2;
            readonly ADAPTIVE_RADIUS: 3;
        }>;
        value?: number | undefined;
    } | null;
    roughness: number;
    opacity: number;
    width: number;
    height: number;
    angle: number;
    seed: number;
    version: number;
    versionNonce: number;
    isDeleted: boolean;
    groupIds: readonly string[];
    boundElements: readonly Readonly<{
        id: string;
        type: "arrow" | "text";
    }>[] | null;
    updated: number;
    link: string | null;
    locked: boolean;
    customData?: Record<string, any> | undefined;
}> & Readonly<{
    type: "image";
    fileId: import("../element/types").FileId | null;
    status: "pending" | "saved" | "error";
    scale: [number, number];
}> & {
    isDeleted: boolean;
}) | (Readonly<{
    id: string;
    x: number;
    y: number;
    strokeColor: string;
    backgroundColor: string;
    fillStyle: import("../element/types").FillStyle;
    strokeWidth: number;
    strokeStyle: import("../element/types").StrokeStyle;
    roundness: {
        type: ValueOf<{
            readonly LEGACY: 1;
            readonly PROPORTIONAL_RADIUS: 2;
            readonly ADAPTIVE_RADIUS: 3;
        }>;
        value?: number | undefined;
    } | null;
    roughness: number;
    opacity: number;
    width: number;
    height: number;
    angle: number;
    seed: number;
    version: number;
    versionNonce: number;
    isDeleted: boolean;
    groupIds: readonly string[];
    boundElements: readonly Readonly<{
        id: string;
        type: "arrow" | "text";
    }>[] | null;
    updated: number;
    link: string | null;
    locked: boolean;
    customData?: Record<string, any> | undefined;
}> & Readonly<{
    type: "text";
    fontSize: number;
    fontFamily: number;
    text: string;
    baseline: number;
    textAlign: string;
    verticalAlign: string;
    containerId: string | null;
    originalText: string;
}> & {
    isDeleted: boolean;
}) | (Readonly<{
    id: string;
    x: number;
    y: number;
    strokeColor: string;
    backgroundColor: string;
    fillStyle: import("../element/types").FillStyle;
    strokeWidth: number;
    strokeStyle: import("../element/types").StrokeStyle;
    roundness: {
        type: ValueOf<{
            readonly LEGACY: 1;
            readonly PROPORTIONAL_RADIUS: 2;
            readonly ADAPTIVE_RADIUS: 3;
        }>;
        value?: number | undefined;
    } | null;
    roughness: number;
    opacity: number;
    width: number;
    height: number;
    angle: number;
    seed: number;
    version: number;
    versionNonce: number;
    isDeleted: boolean;
    groupIds: readonly string[];
    boundElements: readonly Readonly<{
        id: string;
        type: "arrow" | "text";
    }>[] | null;
    updated: number;
    link: string | null;
    locked: boolean;
    customData?: Record<string, any> | undefined;
}> & Readonly<{
    type: "freedraw";
    points: readonly (readonly [number, number])[];
    pressures: readonly number[];
    simulatePressure: boolean;
    lastCommittedPoint: readonly [number, number] | null;
}> & {
    isDeleted: boolean;
}) | null;
export declare const getElementsAtPosition: (elements: readonly NonDeletedExcalidrawElement[], isAtPositionFn: (element: NonDeletedExcalidrawElement) => boolean) => import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[];
