AsukaExportedState: {
    appearance?: {
        defaults?: AsukaState["defaults"];
        theme?: ThemeInit;
    };
    behavior?: {
        listenersEnabled?: AsukaState["listenersEnabled"];
        listenerSettings?: AsukaState["listenerSettings"];
    };
    catalog?: {
        colors?: AsukaState["colors"];
        designs?: {
            category?: string;
            name: string;
            price?: number | string;
            url: string;
        }[];
        elements?: AsukaState["elements"];
        printingMethods?: AsukaState["printingMethods"];
    };
    configuration?: {
        fontsCatalog?: AsukaState["fontsCatalog"];
        integrations?: AsukaState["integrations"];
        moduleConfig?: AsukaState["moduleConfig"];
    };
    document?: {
        asukaDocument?: AsukaDocumentState;
        drawingAreas?: {
            activeByView?: Record<string, string | null>;
            activeDrawingAreaId: string | null;
            byView?: Record<string, SerializedDrawingArea[]>;
            zones: SerializedDrawingArea[];
        };
        elements?: AsukaState["elements"];
        objects?: {
            byView: Record<string, any[]>;
            source:
                | "document-store"
                | "view-snapshots"
                | "mixed"
                | "asuka-document";
        };
        scenes3d?: Record<string, any>;
        selection?: {
            activeDrawingAreaId: string | null;
            activeObjectIds: string[];
        };
        snapshots?: {
            snapshotsByView: Record<string, any>;
        };
        viewportByView?: Record<string, {
            panX: number;
            panY: number;
            zoom: number;
        }>;
        views?: {
            activeViewId: AsukaState["activeViewId"];
            views: AsukaState["views"];
        };
    };
    exportedAt: string;
    format: "asuka-state";
    history?: {
        info: {
            canRedo: boolean;
            canUndo: boolean;
            index: number;
            length: number;
            maxSnapshots: number;
        };
        mode: "document-state-history";
        tracks3dByView?: Record<string, any>;
        tracksFabricByView?: Record<string, any>;
    };
    layout?: {
        blocksByZone: AsukaState["blocksByZone"];
        zoneCollapsed: AsukaState["zoneCollapsed"];
        zoneCollapsible: AsukaState["zoneCollapsible"];
        zoneType: AsukaState["zoneType"];
    };
    meta?: {
        app: "AsukaDesigner";
        exportedAt: string;
        schemaVersion: 2;
    };
    modules?: {
        activeModuleId: AsukaState["activeModuleId"];
        hiddenModules?: AsukaState["hiddenModules"];
        moduleDisplayModeOverrides?: Record<string, any>;
        moduleMountTargetOverrides?: Record<string, string>;
        moduleOverlayAnchorBox?: AsukaState["moduleOverlayAnchorBox"];
        moduleOverlayStack?: AsukaState["moduleOverlayStack"];
        moduleOverlayType?: AsukaState["moduleOverlayType"];
        mountedModules?: AsukaState["mountedModules"];
        pendingOpenCreateViewModal?: AsukaState["pendingOpenCreateViewModal"];
        pendingRestoreSelectionMenu?: AsukaState["pendingRestoreSelectionMenu"];
    };
    permissions?: {
        permissions: AsukaState["permissions"];
        permissionsByView: Record<string, Partial<AsukaState["permissions"]>>;
        role: any;
    };
    pricing?: {
        basePrice?: AsukaState["price"];
        rules?: AsukaState["pricingRules"];
        totals?: AsukaState["pricingTotals"];
    };
    schemaVersion: 2;
    scope: Required<AsukaStateScope> & {
        appearance: Required<NonNullable<AsukaStateScope["appearance"]>>;
        behavior: Required<NonNullable<AsukaStateScope["behavior"]>>;
        catalog: Required<NonNullable<AsukaStateScope["catalog"]>>;
        configuration: Required<NonNullable<AsukaStateScope["configuration"]>>;
        document: Required<NonNullable<AsukaStateScope["document"]>>;
        pricing: Required<NonNullable<AsukaStateScope["pricing"]>>;
        tools: Required<NonNullable<AsukaStateScope["tools"]>>;
    };
    tools?: {
        colorScope?: AsukaState["colorScope"];
        fixedSlots?: {
            activeId: AsukaState["fixedSlotActiveId"];
            editor: AsukaState["markerEditorState"];
            placing: AsukaState["fixedSlotsPlacing"];
            slots: AsukaState["fixedSlots"];
        };
        magnifier?: {
            active: AsukaState["magnifierActive"];
            enabled: AsukaState["magnifierEnabled"];
            size: AsukaState["magnifierSize"];
            x: AsukaState["magnifierX"];
            y: AsukaState["magnifierY"];
            zoom: AsukaState["magnifierZoom"];
        };
        ruler?: {
            dpi: AsukaState["rulerDpi"];
            enabled: AsukaState["rulerEnabled"];
            product: AsukaState["rulerProduct"];
            unit: AsukaState["rulerUnit"];
        };
        selectionMenu?: {
            anchorBox: AsukaState["selectionMenuAnchorBox"];
            items: AsukaState["selectionMenuItems"];
            open: AsukaState["selectionMenuOpen"];
            rootType: AsukaState["selectionMenuRootType"];
            stack: AsukaState["selectionMenuStack"];
            type: AsukaState["selectionMenuType"];
        };
        shapes?: {
            editDefaults: AsukaState["shapeEditDefaults"];
            placing: AsukaState["shapePlacing"];
            style: AsukaState["shapeStyle"];
            svgAssets: AsukaState["shapeSvgAssets"];
        };
    };
}

Type declaration