export declare const actionAddToLibrary: {
    name: "addToLibrary";
    trackEvent: {
        category: "element";
    };
    perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => Promise<{
        commitToHistory: boolean;
        appState: {
            toast: {
                message: string;
            };
            contextMenu: {
                items: import("../components/ContextMenu").ContextMenuItems;
                top: number;
                left: number;
            } | null;
            showWelcomeScreen: boolean;
            isLoading: boolean;
            errorMessage: string | null;
            draggingElement: (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;
            resizingElement: (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;
            multiElement: (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;
            }) | null;
            selectionElement: (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;
            isBindingEnabled: boolean;
            startBoundElement: (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;
            }) | null;
            suggestedBindings: import("../element/binding").SuggestedBinding[];
            editingElement: (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;
            editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
            activeTool: ({
                lastActiveTool: import("../types").LastActiveTool;
                locked: boolean;
            } & {
                type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
                customType: null;
            }) | ({
                lastActiveTool: import("../types").LastActiveTool;
                locked: boolean;
            } & {
                type: "custom";
                customType: string;
            });
            penMode: boolean;
            penDetected: boolean;
            exportBackground: boolean;
            exportEmbedScene: boolean;
            exportWithDarkMode: boolean;
            exportScale: number;
            currentItemStrokeColor: string;
            currentItemBackgroundColor: string;
            currentItemFillStyle: import("../element/types").FillStyle;
            currentItemStrokeWidth: number;
            currentItemStrokeStyle: import("../element/types").StrokeStyle;
            currentItemRoughness: number;
            currentItemOpacity: number;
            currentItemFontFamily: number;
            currentItemFontSize: number;
            currentItemTextAlign: string;
            currentItemStartArrowhead: "bar" | "arrow" | "dot" | "triangle" | null;
            currentItemEndArrowhead: "bar" | "arrow" | "dot" | "triangle" | null;
            currentItemRoundness: import("../element/types").StrokeRoundness;
            viewBackgroundColor: string;
            scrollX: number;
            scrollY: number;
            cursorButton: "up" | "down";
            scrolledOutside: boolean;
            name: string;
            isResizing: boolean;
            isRotating: boolean;
            zoom: Readonly<{
                value: import("../types").NormalizedZoomValue;
            }>;
            openMenu: "canvas" | "shape" | null;
            openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
            openSidebar: "library" | "customSidebar" | null;
            openDialog: "imageExport" | "help" | "jsonExport" | null;
            isSidebarDocked: boolean;
            lastPointerDownWith: import("../element/types").PointerType;
            selectedElementIds: {
                [id: string]: boolean;
            };
            previousSelectedElementIds: {
                [id: string]: boolean;
            };
            shouldCacheIgnoreZoom: boolean;
            zenModeEnabled: boolean;
            theme: string;
            gridSize: number | null;
            viewModeEnabled: boolean;
            selectedGroupIds: {
                [groupId: string]: boolean;
            };
            editingGroupId: string | null;
            width: number;
            height: number;
            offsetTop: number;
            offsetLeft: number;
            fileHandle: import("browser-fs-access").FileSystemHandle | null;
            collaborators: Map<string, import("../types").Collaborator>;
            showStats: boolean;
            currentChartType: import("../element/types").ChartType;
            pasteDialog: {
                shown: false;
                data: null;
            } | {
                shown: true;
                data: import("../charts").Spreadsheet;
            };
            pendingImageElementId: string | null;
            showHyperlinkPopup: false | "info" | "editor";
            selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
        };
    } | {
        commitToHistory: false;
        appState: {
            errorMessage: any;
            contextMenu: {
                items: import("../components/ContextMenu").ContextMenuItems;
                top: number;
                left: number;
            } | null;
            showWelcomeScreen: boolean;
            isLoading: boolean;
            draggingElement: (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;
            resizingElement: (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;
            multiElement: (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;
            }) | null;
            selectionElement: (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;
            isBindingEnabled: boolean;
            startBoundElement: (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;
            }) | null;
            suggestedBindings: import("../element/binding").SuggestedBinding[];
            editingElement: (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;
            editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
            activeTool: ({
                lastActiveTool: import("../types").LastActiveTool;
                locked: boolean;
            } & {
                type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
                customType: null;
            }) | ({
                lastActiveTool: import("../types").LastActiveTool;
                locked: boolean;
            } & {
                type: "custom";
                customType: string;
            });
            penMode: boolean;
            penDetected: boolean;
            exportBackground: boolean;
            exportEmbedScene: boolean;
            exportWithDarkMode: boolean;
            exportScale: number;
            currentItemStrokeColor: string;
            currentItemBackgroundColor: string;
            currentItemFillStyle: import("../element/types").FillStyle;
            currentItemStrokeWidth: number;
            currentItemStrokeStyle: import("../element/types").StrokeStyle;
            currentItemRoughness: number;
            currentItemOpacity: number;
            currentItemFontFamily: number;
            currentItemFontSize: number;
            currentItemTextAlign: string;
            currentItemStartArrowhead: "bar" | "arrow" | "dot" | "triangle" | null;
            currentItemEndArrowhead: "bar" | "arrow" | "dot" | "triangle" | null;
            currentItemRoundness: import("../element/types").StrokeRoundness;
            viewBackgroundColor: string;
            scrollX: number;
            scrollY: number;
            cursorButton: "up" | "down";
            scrolledOutside: boolean;
            name: string;
            isResizing: boolean;
            isRotating: boolean;
            zoom: Readonly<{
                value: import("../types").NormalizedZoomValue;
            }>;
            openMenu: "canvas" | "shape" | null;
            openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
            openSidebar: "library" | "customSidebar" | null;
            openDialog: "imageExport" | "help" | "jsonExport" | null;
            isSidebarDocked: boolean;
            lastPointerDownWith: import("../element/types").PointerType;
            selectedElementIds: {
                [id: string]: boolean;
            };
            previousSelectedElementIds: {
                [id: string]: boolean;
            };
            shouldCacheIgnoreZoom: boolean;
            toast: {
                message: string;
                closable?: boolean | undefined;
                duration?: number | undefined;
            } | null;
            zenModeEnabled: boolean;
            theme: string;
            gridSize: number | null;
            viewModeEnabled: boolean;
            selectedGroupIds: {
                [groupId: string]: boolean;
            };
            editingGroupId: string | null;
            width: number;
            height: number;
            offsetTop: number;
            offsetLeft: number;
            fileHandle: import("browser-fs-access").FileSystemHandle | null;
            collaborators: Map<string, import("../types").Collaborator>;
            showStats: boolean;
            currentChartType: import("../element/types").ChartType;
            pasteDialog: {
                shown: false;
                data: null;
            } | {
                shown: true;
                data: import("../charts").Spreadsheet;
            };
            pendingImageElementId: string | null;
            showHyperlinkPopup: false | "info" | "editor";
            selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
        };
    }> | {
        commitToHistory: false;
        appState: {
            errorMessage: string;
            contextMenu: {
                items: import("../components/ContextMenu").ContextMenuItems;
                top: number;
                left: number;
            } | null;
            showWelcomeScreen: boolean;
            isLoading: boolean;
            draggingElement: (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;
            resizingElement: (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;
            multiElement: (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;
            }) | null;
            selectionElement: (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;
            isBindingEnabled: boolean;
            startBoundElement: (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;
            }) | null;
            suggestedBindings: import("../element/binding").SuggestedBinding[];
            editingElement: (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;
            editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
            activeTool: ({
                lastActiveTool: import("../types").LastActiveTool;
                locked: boolean;
            } & {
                type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
                customType: null;
            }) | ({
                lastActiveTool: import("../types").LastActiveTool;
                locked: boolean;
            } & {
                type: "custom";
                customType: string;
            });
            penMode: boolean;
            penDetected: boolean;
            exportBackground: boolean;
            exportEmbedScene: boolean;
            exportWithDarkMode: boolean;
            exportScale: number;
            currentItemStrokeColor: string;
            currentItemBackgroundColor: string;
            currentItemFillStyle: import("../element/types").FillStyle;
            currentItemStrokeWidth: number;
            currentItemStrokeStyle: import("../element/types").StrokeStyle;
            currentItemRoughness: number;
            currentItemOpacity: number;
            currentItemFontFamily: number;
            currentItemFontSize: number;
            currentItemTextAlign: string;
            currentItemStartArrowhead: "bar" | "arrow" | "dot" | "triangle" | null;
            currentItemEndArrowhead: "bar" | "arrow" | "dot" | "triangle" | null;
            currentItemRoundness: import("../element/types").StrokeRoundness;
            viewBackgroundColor: string;
            scrollX: number;
            scrollY: number;
            cursorButton: "up" | "down";
            scrolledOutside: boolean;
            name: string;
            isResizing: boolean;
            isRotating: boolean;
            zoom: Readonly<{
                value: import("../types").NormalizedZoomValue;
            }>;
            openMenu: "canvas" | "shape" | null;
            openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
            openSidebar: "library" | "customSidebar" | null;
            openDialog: "imageExport" | "help" | "jsonExport" | null;
            isSidebarDocked: boolean;
            lastPointerDownWith: import("../element/types").PointerType;
            selectedElementIds: {
                [id: string]: boolean;
            };
            previousSelectedElementIds: {
                [id: string]: boolean;
            };
            shouldCacheIgnoreZoom: boolean;
            toast: {
                message: string;
                closable?: boolean | undefined;
                duration?: number | undefined;
            } | null;
            zenModeEnabled: boolean;
            theme: string;
            gridSize: number | null;
            viewModeEnabled: boolean;
            selectedGroupIds: {
                [groupId: string]: boolean;
            };
            editingGroupId: string | null;
            width: number;
            height: number;
            offsetTop: number;
            offsetLeft: number;
            fileHandle: import("browser-fs-access").FileSystemHandle | null;
            collaborators: Map<string, import("../types").Collaborator>;
            showStats: boolean;
            currentChartType: import("../element/types").ChartType;
            pasteDialog: {
                shown: false;
                data: null;
            } | {
                shown: true;
                data: import("../charts").Spreadsheet;
            };
            pendingImageElementId: string | null;
            showHyperlinkPopup: false | "info" | "editor";
            selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
        };
    };
    contextItemLabel: string;
} & {
    keyTest?: undefined;
};
