import type { ComponentMap, ComponentPropsWithoutInternalProps } from '../../components';
interface ValueSchema<T> {
    required?: boolean;
    type: 'string' | 'number' | 'boolean' | 'array' | 'function';
    exactValue?: T | T[];
}
interface ObjectSchema<T> {
    required?: boolean;
    type: 'object';
    propertiesSchema?: PropertiesSchema<NonNullable<T>>;
}
export type PropertySchema<T> = ValueSchema<T> | ObjectSchema<T>;
export type PropertiesSchema<T> = {
    [Key in keyof T]: PropertySchema<NonNullable<T[Key]>>;
};
export type ComponentsSchemaMap = {
    [ComponentName in keyof ComponentMap]: PropertiesSchema<ComponentPropsWithoutInternalProps<ComponentName>>;
};
export {};
