import type { CombinedSpec, ComponentDefinition } from "./types.js"; type EmptyProps = Record; declare const NO_PROPS: CombinedSpec; /** * Builds a component definition, what the model reads about a component. Throws when `props` or a callback payload * declares a `children` field: that name is reserved for child entries. * * @example * export const BadgeDef = createComponentDefinition({ * name: "Badge", * description: "A short status label.", * props: z.strictObject({ text: z.string().meta({ description: "The label" }) }), * }); * * @example * createComponentDefinition({ * name: "Button", description: "A clickable button.", * props: z.strictObject({ text: z.string() }), * callbacks: { onClick: z.null() }, // printed as onClick() * }); */ export declare const createComponentDefinition: = Record>({ name, description, props, callbacks, hidden, }: Omit, "props"> & { /** The props schema. Omit it for a component that takes none. */ props?: TProps; }) => ComponentDefinition; export {};