import * as React from 'react';
import { PageConstructorProps, PageConstructorProviderProps } from "../../containers/PageConstructor/index.js";
import { SchemaCustomConfig } from "../../gravity-blocks/schema/index.js";
import { BlockWrapperDataProps, PageContent } from "../../models/index.js";
import { Theme } from "../../models/common.js";
import { EditBlockActions } from "../components/EditBlock/EditBlock.js";
export type EditorBlockId = number | string;
interface ContentTransformersOptions {
    viewMode?: ViewModeItem;
    editMode?: EditModeItem;
}
export type ContentTransformer = (content: PageContent, options: ContentTransformersOptions) => PageContent;
export interface DeviceEmulationSettings {
    customStyles?: string;
    applyHostStyles?: boolean;
}
export interface EditorProps extends Required<Pick<PageConstructorProps, 'content'>>, Partial<Omit<PageConstructorProps, 'content'>> {
    providerProps?: PageConstructorProviderProps;
    onChange?: (data: PageContent) => void;
    transformContent?: ContentTransformer;
    customSchema?: SchemaCustomConfig;
    deviceEmulationSettings?: DeviceEmulationSettings;
    theme?: Theme;
}
export interface EditBlockEditorProps {
    isActive?: boolean;
    onSelect: () => void;
    actions: EditBlockActions;
}
export interface EditBlockProps extends EditBlockEditorProps, BlockWrapperDataProps, React.PropsWithChildren {
    isHeader?: boolean;
}
export declare enum ViewModeItem {
    Desktop = "desktop",
    Tablet = "tablet",
    Mobile = "mobile"
}
export declare enum EditModeItem {
    View = "view",
    Form = "form",
    Code = "code"
}
export {};
