import type { ComponentType, ExoticComponent } from 'react'; export type HtmdxPropType = 'string' | 'number' | 'boolean' | 'json'; export type HtmdxJsonValue = null | boolean | number | string | readonly HtmdxJsonValue[] | { readonly [key: string]: HtmdxJsonValue; }; type HtmdxPropBase = { name: string; type: T; required?: boolean; values?: readonly V[]; default?: V; description?: string; }; export type HtmdxStringProp = HtmdxPropBase<'string', string> & { pattern?: string; }; export type HtmdxNumberProp = HtmdxPropBase<'number', number> & { min?: number; max?: number; }; export type HtmdxBooleanProp = HtmdxPropBase<'boolean', boolean>; export type HtmdxJsonProp = HtmdxPropBase<'json', HtmdxJsonValue>; export type HtmdxProp = HtmdxStringProp | HtmdxNumberProp | HtmdxBooleanProp | HtmdxJsonProp; export type HtmdxComponent = { name: string; purpose: string; example: string; body: 'markdown' | 'htmdx' | 'none'; props?: readonly HtmdxProp[]; Component: ComponentType | ExoticComponent; }; export type HtmdxComponentDefinitions = readonly HtmdxComponent[]; export declare function createDefinitionRegistry(definitions?: HtmdxComponentDefinitions, reservedNames?: Iterable): Map; export declare function validateDefinition(definition: HtmdxComponent): void; export declare function validateConstraints(componentName: string, prop: HtmdxProp, value: unknown): void; export {};