export { validators } from "./validators/index.js";
export type { ObjectSchema } from "./validators/utils.js";
import type { JSONSchema4 } from 'json-schema';
export type Schema = JSONSchema4;
export type SchemaDefinitions = {
    [k: string]: Schema;
};
export interface SchemaCustomConfig {
    blocks?: Record<string, Schema>;
    cards?: Record<string, Schema>;
    extensions?: object;
}
export declare const getBlocksCases: (blocks: Schema) => any;
export declare const defaultComponentsConfigurationSchema: {
    type: string;
    properties: {
        logo: {
            oneOf: (({
                type: string;
                additionalProperties: boolean;
                required: string[];
                properties: {
                    icon: {
                        oneOf: ({
                            type: string;
                            properties: {
                                when: {
                                    type: string;
                                };
                            };
                        } | {
                            type: string;
                            pattern: string;
                            optionName: string;
                            items?: undefined;
                        } | {
                            type: string;
                            items: {
                                type: string;
                                properties: {
                                    when: {
                                        type: string;
                                    };
                                };
                            };
                            optionName: string;
                            pattern?: undefined;
                        })[];
                    };
                    text: {
                        type: string;
                        contentType: string;
                    };
                    url: {
                        type: string;
                    };
                };
            } & {
                optionName: string;
            }) | {
                type: string;
                additionalProperties: boolean;
                required: import("../../index.js").Theme[];
                properties: {};
                optionName: string;
            })[];
        };
        header: {
            type: string;
            additionalProperties: boolean;
            required: string[];
            properties: {
                leftItems: {
                    oneOf: {
                        type: string;
                        items: {
                            type: string;
                            properties: {
                                when: {
                                    type: string;
                                };
                            };
                        };
                        optionName: string;
                    }[];
                };
                rightItems: {
                    oneOf: {
                        type: string;
                        items: {
                            type: string;
                            properties: {
                                when: {
                                    type: string;
                                };
                            };
                        };
                        optionName: string;
                    }[];
                };
                iconSize: {
                    type: string;
                };
            };
        };
        menu: {
            type: string;
            additionalProperties: boolean;
            properties: {
                title: {
                    type: string;
                    contentType: string;
                };
            };
        };
        background: {
            oneOf: (({
                additionalProperties: boolean;
                properties: {
                    image: {
                        oneOf: ({
                            type: string;
                            properties: {
                                when: {
                                    type: string;
                                };
                            };
                        } | {
                            type: string;
                            pattern: string;
                            optionName: string;
                            items?: undefined;
                        } | {
                            type: string;
                            items: {
                                type: string;
                                properties: {
                                    when: {
                                        type: string;
                                    };
                                };
                            };
                            optionName: string;
                            pattern?: undefined;
                        })[];
                    };
                    color: {
                        type: string;
                    };
                    video: {
                        type: string;
                        additionalProperties: boolean;
                        required: string[];
                        properties: {
                            src: {
                                type: string;
                                items: {
                                    type: string;
                                };
                            };
                            loop: {
                                oneOf: ({
                                    optionName: string;
                                    type: string;
                                    additionalProperties: boolean;
                                    required: string[];
                                    properties: {
                                        start: {
                                            type: string;
                                        };
                                        end: {
                                            type: string;
                                        };
                                    };
                                } | {
                                    type: string;
                                    optionName: string;
                                })[];
                            };
                            type: {
                                type: string;
                                enum: string[];
                            };
                            muted: {
                                type: string;
                            };
                            autoplay: {
                                type: string;
                            };
                            elapsedTime: {
                                type: string;
                            };
                            playButton: {
                                type: string;
                                additionalProperties: boolean;
                                properties: {
                                    type: {
                                        type: string;
                                        enum: string[];
                                    };
                                    theme: {
                                        type: string;
                                        enum: string[];
                                    };
                                    text: {
                                        type: string;
                                        contentType: string;
                                    };
                                };
                            };
                            controls: {
                                type: string;
                                enum: import("../../index.js").MediaVideoControlsType[];
                            };
                            customControlsOptions: {
                                type: string;
                                additionalProperties: boolean;
                                properties: {
                                    type: {
                                        type: string;
                                        enum: import("../../index.js").CustomControlsType[];
                                    };
                                    muteButtonShown: {
                                        type: string;
                                    };
                                    positioning: {
                                        type: string;
                                        enum: import("../../index.js").CustomControlsButtonPositioning[];
                                    };
                                };
                            };
                            ariaLabel: {
                                type: string;
                            };
                            contain: {
                                type: string;
                            };
                        };
                    };
                    height: {
                        type: string;
                    };
                    size: {
                        type: string;
                        enum: string[];
                    };
                    parallax: {
                        type: string;
                    };
                    fullWidthMedia: {
                        type: string;
                    };
                    animated: {
                        type: string;
                    };
                };
            } & {
                optionName: string;
            }) | {
                type: string;
                additionalProperties: boolean;
                required: import("../../index.js").Theme[];
                properties: {};
                optionName: string;
            })[];
        };
        animated: {
            type: string;
        };
    };
};
export declare function generateDefaultSchema(config?: SchemaCustomConfig): Schema;
