export interface SchemaValue { validate(value: T): string | null; default: T | undefined; required: boolean; } export type SchemaDefinition = { [key in keyof T]: SchemaValue; }; export declare class SchemaValidationError extends Error { constructor(message: string); } export declare class Schema { private definition; constructor(definition: SchemaDefinition); validate(values?: Partial, message?: string): Partial; private get default(); } type InferValuesFromSchema = T extends Schema ? P : never; export type SchemaValues = never> = Partial> & Pick, RequiredValues>; export {};