import { SiteAndPagesConfig } from '@upstart.gg/sdk/shared/site/site';
import { createEditorStore, EditorStateProps } from '../hooks/use-editor';
import { UploaderProviderProps } from './UploaderContext';
import { createDraftStore } from '../hooks/use-page-data';
export interface EditorWrapperRef {
    editorStore: ReturnType<typeof createEditorStore>;
    draftStore: ReturnType<typeof createDraftStore>;
}
export type EditorWrapperProps = Pick<EditorStateProps, "chatSession" | "onShowPopup" | "onSaveSite"> & UploaderProviderProps & SiteAndPagesConfig & {
    onReady?: () => void;
};
/**
 * Wrap the Editor component with the EditorStore and DraftStore contexts.
 * If no children are provided, the default Page component will be rendered, but not within the Editor.
 */
export declare const EditorWrapper: import('react').ForwardRefExoticComponent<Pick<EditorStateProps, "chatSession" | "onSaveSite" | "onShowPopup"> & {
    onImageUpload: (file: File) => Promise<string>;
} & {
    children?: import('react').ReactNode | undefined;
} & {
    site: {
        id: string;
        label: string;
        hostname: string;
        attributes: {
            ogImage?: {
                alt?: string | undefined;
                aspectRatio?: "auto" | "1:1" | "4:3" | "3:4" | "16:9" | "9:16" | "2:3" | "3:2" | "5:4" | "4:5" | "21:9" | "9:21" | "original" | undefined;
                fit?: "object-none" | "object-contain" | "object-cover" | "object-fill" | "object-scale-down" | undefined;
                position?: "object-top" | "object-center" | "object-bottom" | "object-left" | "object-right" | "object-top-left" | "object-top-right" | "object-bottom-left" | "object-bottom-right" | undefined;
                src: string;
            } | undefined;
            robotsIndexing?: boolean | undefined;
            headTags?: string | undefined;
            bodyTags?: string | undefined;
            label: string;
            language: "ar" | "zh" | "cs" | "nl" | "en" | "fr" | "de" | "he" | "hi" | "it" | "ja" | "ko" | "fa" | "pl" | "pt" | "ru" | "es" | "tr" | "vi";
            themeId: string;
        };
        datasources: {
            foreignKeys?: {
                field: string;
                foreignDatasourceId: string;
                foreignField: string;
            }[] | undefined;
            id: string;
            label: string;
            provider: "internal";
            schema: any;
            indexes: {
                unique?: boolean | undefined;
                fulltext?: boolean | undefined;
                name: string;
                fields: string[];
            }[];
        }[];
        datarecords: ({
            description?: string | undefined;
            id: string;
            label: string;
            provider: "airtable";
            schema: object;
            options: {
                fields?: {
                    id: string;
                    name: string;
                    type: string;
                }[] | undefined;
                externalUrl?: string | undefined;
                baseName?: string | undefined;
                tableName?: string | undefined;
                baseId: string;
                tableId: string;
            };
        } | {
            description?: string | undefined;
            id: string;
            label: string;
            provider: "google-sheets";
            schema: object;
            options: {
                externalUrl?: string | undefined;
                spreadsheetUrl?: string | undefined;
                spreadsheetName?: string | undefined;
                spreadsheetId: string;
            };
        } | {
            description?: string | undefined;
            id: string;
            label: string;
            provider: "notion";
            schema: object;
            options: {
                url?: string | undefined;
                id: string;
                name: string;
                properties: any;
            };
        } | {
            description?: string | undefined;
            id: string;
            label: string;
            provider: "internal";
            schema: object;
        })[];
        themes: {
            id: string;
            name: string;
            description: string;
            tags: string[];
            browserColorScheme: "light" | "dark";
            colors: {
                primary: string;
                secondary: string;
                accent: string;
                neutral: string;
                info: string;
                success: string;
                warning: string;
                error: string;
                base100: string;
                base200: string;
                base300: string;
            };
            typography: {
                base: number;
                heading: {
                    type: "stack";
                    family: string;
                } | {
                    type: "theme";
                    family: string;
                } | {
                    type: "google";
                    family: string;
                };
                body: {
                    type: "stack";
                    family: string;
                } | {
                    type: "theme";
                    family: string;
                } | {
                    type: "google";
                    family: string;
                };
                alternatives: {
                    heading: {
                        type: "stack";
                        family: string;
                    } | {
                        type: "theme";
                        family: string;
                    } | {
                        type: "google";
                        family: string;
                    };
                    body: {
                        type: "stack";
                        family: string;
                    } | {
                        type: "theme";
                        family: string;
                    } | {
                        type: "google";
                        family: string;
                    };
                }[];
            };
        }[];
        theme: {
            id: string;
            name: string;
            description: string;
            tags: string[];
            browserColorScheme: "light" | "dark";
            colors: {
                primary: string;
                secondary: string;
                accent: string;
                neutral: string;
                info: string;
                success: string;
                warning: string;
                error: string;
                base100: string;
                base200: string;
                base300: string;
            };
            typography: {
                base: number;
                heading: {
                    type: "stack";
                    family: string;
                } | {
                    type: "theme";
                    family: string;
                } | {
                    type: "google";
                    family: string;
                };
                body: {
                    type: "stack";
                    family: string;
                } | {
                    type: "theme";
                    family: string;
                } | {
                    type: "google";
                    family: string;
                };
                alternatives: {
                    heading: {
                        type: "stack";
                        family: string;
                    } | {
                        type: "theme";
                        family: string;
                    } | {
                        type: "google";
                        family: string;
                    };
                    body: {
                        type: "stack";
                        family: string;
                    } | {
                        type: "theme";
                        family: string;
                    } | {
                        type: "google";
                        family: string;
                    };
                }[];
            };
        };
        sitemap: {
            isInitialPage?: boolean | undefined;
            status?: "draft" | "published" | undefined;
            id: string;
            label: string;
            tags: string[];
            path: string;
        }[];
        sitePrompt: string;
    };
    pages: {
        id: string;
        label: string;
        attributes: {
            ogImage?: {
                alt?: string | undefined;
                aspectRatio?: "auto" | "1:1" | "4:3" | "3:4" | "16:9" | "9:16" | "2:3" | "3:2" | "5:4" | "4:5" | "21:9" | "9:21" | "original" | undefined;
                fit?: "object-none" | "object-contain" | "object-cover" | "object-fill" | "object-scale-down" | undefined;
                position?: "object-top" | "object-center" | "object-bottom" | "object-left" | "object-right" | "object-top-left" | "object-top-right" | "object-bottom-left" | "object-bottom-right" | undefined;
                src: string;
            } | undefined;
            robotsIndexing?: boolean | undefined;
            language?: "ar" | "zh" | "cs" | "nl" | "en" | "fr" | "de" | "he" | "hi" | "it" | "ja" | "ko" | "fa" | "pl" | "pt" | "ru" | "es" | "tr" | "vi" | undefined;
            additionalTags?: {
                headTags?: string | undefined;
                bodyTags?: string | undefined;
            } | undefined;
            isInitialPage?: boolean | undefined;
            description: string;
            tags: string[];
            path: string;
            layout: string;
            title: string;
            keywords: string;
        };
        sections: {
            mobileProps?: {
                colorPreset?: {
                    gradientDirection?: string | undefined;
                    color: string;
                } | undefined;
                backgroundImage?: {
                    repeat?: "repeat" | "no-repeat" | "repeat-x" | "repeat-y" | "space" | "round" | undefined;
                    size?: "auto" | "cover" | "contain" | undefined;
                    image: string;
                } | undefined;
                direction?: "flex-row" | "flex-col" | undefined;
                minHeight?: string | undefined;
                variant?: "navbar" | "footer" | "sidebar" | undefined;
                maxWidth?: "max-w-screen-lg" | "max-w-screen-xl" | "max-w-screen-2xl" | "max-w-full" | undefined;
                verticalMargin?: string | undefined;
                justifyContent?: "justify-start" | "justify-center" | "justify-end" | "justify-between" | "justify-around" | "justify-evenly" | undefined;
                alignItems?: "items-start" | "items-center" | "items-end" | "items-stretch" | undefined;
                padding?: string | undefined;
                gap?: string | undefined;
                wrap?: boolean | undefined;
                lastTouched?: number | undefined;
            } | undefined;
            id: string;
            label: string;
            props: {
                colorPreset?: {
                    gradientDirection?: string | undefined;
                    color: string;
                } | undefined;
                backgroundImage?: {
                    repeat?: "repeat" | "no-repeat" | "repeat-x" | "repeat-y" | "space" | "round" | undefined;
                    size?: "auto" | "cover" | "contain" | undefined;
                    image: string;
                } | undefined;
                direction?: "flex-row" | "flex-col" | undefined;
                minHeight?: string | undefined;
                variant?: "navbar" | "footer" | "sidebar" | undefined;
                maxWidth?: "max-w-screen-lg" | "max-w-screen-xl" | "max-w-screen-2xl" | "max-w-full" | undefined;
                verticalMargin?: string | undefined;
                justifyContent?: "justify-start" | "justify-center" | "justify-end" | "justify-between" | "justify-around" | "justify-evenly" | undefined;
                alignItems?: "items-start" | "items-center" | "items-end" | "items-stretch" | undefined;
                padding?: string | undefined;
                gap?: string | undefined;
                wrap?: boolean | undefined;
                lastTouched?: number | undefined;
            };
            order: number;
            bricks: {
                label?: string | undefined;
                mobileProps?: any;
                id: string;
                type: string;
                props: any;
            }[];
        }[];
    }[];
} & {
    onReady?: () => void;
} & import('react').RefAttributes<EditorWrapperRef>>;
//# sourceMappingURL=EditorWrapper.d.ts.map