import { ValueSchema, StylesChannel, StylesScope } from './registry.js'; type JsonSchema = Record; /** Converts a ValueSchema AST node to a JSON Schema object. */ export declare function toJsonSchema(schema: ValueSchema): JsonSchema; /** * Builds a JSON Schema for the patch object of a given channel and scope. * * The scope filter is what keeps the published `styles.apply` schema honest: * the registry now carries run properties that only a named style accepts, and * a schema that advertised them on `docDefaults` would describe an input the * validator rejects. */ export declare function buildPatchSchema(channel: StylesChannel, scope?: StylesScope, options?: { nullable?: boolean; }): JsonSchema; /** * Builds a JSON Schema for the before/after state map of a given scope. * * Scoped for the same reason `buildPatchSchema` is: a receipt cannot report * state for a property the scope does not accept, and advertising one both * misleads a contract-driven caller and loosens receipt validation, since these * objects carry `additionalProperties: false`. * * `channel` narrows it further, for a receipt that reports the two channels * separately. Omitted, both fold into one map — correct only where something * else in the receipt says which channel it describes, as `styles.apply`'s * `resolution.channel` does. */ export declare function buildStateSchema(scope?: StylesScope, channel?: StylesChannel): JsonSchema; export {};