import * as React from 'react';
import type { PageConstructorWrapper } from "../../common/types/index.js";
import { BlockData, blockMap, navItemMap, subBlockMap } from "../../constructor-items.js";
import { Fields } from "../../form-generator-v2/types.js";
import { BlockWrapperDataProps, CustomConfig, CustomItems, PageContent, ShouldRenderBlock } from "../../models/index.js";
import './PageConstructor.css';
export interface PageConstructorExtension<GlobalConfig extends Object = {}, WrapperProps extends Object = {}, BlockWrapperProps extends Object = {}> {
    name: string;
    id: string;
    settings: {
        ContentWrapper?: PageConstructorWrapper<WrapperProps>;
        contentWrapperProps?: WrapperProps;
        globalInputs?: Fields;
        globalDefaults?: GlobalConfig;
        blockWrapper?: React.ComponentType<BlockWrapperDataProps<BlockWrapperProps> & React.PropsWithChildren>;
        blockWrapperProps?: BlockWrapperProps;
        blockInputs?: Fields;
    };
}
export type ItemMap = typeof blockMap & typeof subBlockMap & CustomItems;
export type NavItemMap = typeof navItemMap & CustomItems;
export interface PageConstructorProps {
    content?: PageContent;
    shouldRenderBlock?: ShouldRenderBlock;
    custom?: CustomConfig;
    blocks?: Array<BlockData>;
    extensions?: Array<PageConstructorExtension>;
}
export declare const PageConstructor: (props: PageConstructorProps) => import("react/jsx-runtime").JSX.Element;
