type FieldResult = { valid: true; value: T; } | { valid: false; error: string; }; type CollectInput = Record>; type CollectedValues = { [K in keyof T]: T[K] extends FieldResult ? V : never; }; type CollectResult = { valid: true; values: CollectedValues; } | { valid: false; errors: Record; }; export type { FieldResult, CollectInput, CollectedValues, CollectResult }; export declare function requiredString(value: unknown, field: string, opts?: { maxLength?: number; }): FieldResult; export declare function optionalString(value: unknown, field: string, opts?: { maxLength?: number; }): FieldResult; export declare function requiredEnum(value: unknown, field: string, allowed: readonly T[]): FieldResult; export declare function optionalEnum(value: unknown, field: string, allowed: readonly T[]): FieldResult; export declare function optionalEmail(value: unknown, field: string): FieldResult; export declare function requiredEmail(value: unknown, field: string): FieldResult; export declare function optionalJSON(value: unknown, field: string): FieldResult; export declare function validateStatusTransition(currentStatus: T, newStatus: T, validTransitions: Record): FieldResult; export declare function collectErrors(results: T): CollectResult; //# sourceMappingURL=validate.d.ts.map