import * as v from 'valibot'; import type { Version } from './shared/types/version.js'; /** @internal Used to create the correct inferred types for a provided key/value record. */ export type InferObjectEntries = { [key in NonNullable]: v.GenericSchema; }; interface FieldSchemaOptions { /** The semantic version used for comparison when performing versioning checks for entity schemas. */ version: Version; } /** Helper function to augment a schema with the necessary context for validation within a top-level entity schema. */ export declare function field, v.InferOutput>[]>(schema: TSchema | v.SchemaWithPipe, options?: FieldSchemaOptions): v.SchemaWithPipe<[TSchema, ...TItems, v.MetadataAction, Readonly>]>; interface FieldMetadata { readonly version?: Version; } /** Helper function to create an "entity" (object-like) schema, which recursively performs version checks on all nested entries. */ export declare function entity>>(resolveVersion: (data: v.InferOutput>) => Version, entries: TEntries): v.SchemaWithPipe, v.RawCheckAction; }]?: unknown; } & Omit<{ -readonly [TKey_1 in keyof TEntries]: v.InferOutput; }, { [TKey_3 in keyof TEntries]: TEntries[TKey_3] extends (v.ExactOptionalSchema>, unknown> | v.NullishSchema>, unknown> | v.OptionalSchema>, unknown>) | (v.ExactOptionalSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.NullishSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.OptionalSchemaAsync> | v.BaseSchemaAsync>, unknown>) ? undefined extends TEntries[TKey_3]["default"] ? TKey_3 : never : never; }[keyof TEntries]> & Partial; }, { [TKey_3 in keyof TEntries]: TEntries[TKey_3] extends (v.ExactOptionalSchema>, unknown> | v.NullishSchema>, unknown> | v.OptionalSchema>, unknown>) | (v.ExactOptionalSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.NullishSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.OptionalSchemaAsync> | v.BaseSchemaAsync>, unknown>) ? undefined extends TEntries[TKey_3]["default"] ? TKey_3 : never : never; }[keyof TEntries]>>> & Pick<{ [TKey_2 in keyof { -readonly [TKey_1 in keyof TEntries]: v.InferOutput; }]?: unknown; } & Omit<{ -readonly [TKey_1 in keyof TEntries]: v.InferOutput; }, { [TKey_3 in keyof TEntries]: TEntries[TKey_3] extends (v.ExactOptionalSchema>, unknown> | v.NullishSchema>, unknown> | v.OptionalSchema>, unknown>) | (v.ExactOptionalSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.NullishSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.OptionalSchemaAsync> | v.BaseSchemaAsync>, unknown>) ? undefined extends TEntries[TKey_3]["default"] ? TKey_3 : never : never; }[keyof TEntries]> & Partial; }, { [TKey_3 in keyof TEntries]: TEntries[TKey_3] extends (v.ExactOptionalSchema>, unknown> | v.NullishSchema>, unknown> | v.OptionalSchema>, unknown>) | (v.ExactOptionalSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.NullishSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.OptionalSchemaAsync> | v.BaseSchemaAsync>, unknown>) ? undefined extends TEntries[TKey_3]["default"] ? TKey_3 : never : never; }[keyof TEntries]>>, Exclude>, ...v.PipeItem>[]] & readonly [v.BaseSchema> | v.BaseSchemaAsync>, ...(v.PipeItem> | v.PipeItemAsync>)[]]> | v.SchemaWithPipeAsync>, ...v.PipeItem>[]] & readonly [v.BaseSchema> | v.BaseSchemaAsync>, ...(v.PipeItem> | v.PipeItemAsync>)[]]> ? v.ReadonlyAction extends TPipe[number] ? TKey_4 : never : never; }[keyof TEntries]> | Exclude<{ [TKey_3 in keyof TEntries]: TEntries[TKey_3] extends (v.ExactOptionalSchema>, unknown> | v.NullishSchema>, unknown> | v.OptionalSchema>, unknown>) | (v.ExactOptionalSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.NullishSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.OptionalSchemaAsync> | v.BaseSchemaAsync>, unknown>) ? undefined extends TEntries[TKey_3]["default"] ? TKey_3 : never : never; }[keyof TEntries], { [TKey_4 in keyof TEntries]: TEntries[TKey_4] extends v.SchemaWithPipe>, ...v.PipeItem>[]] & readonly [v.BaseSchema> | v.BaseSchemaAsync>, ...(v.PipeItem> | v.PipeItemAsync>)[]]> | v.SchemaWithPipeAsync>, ...v.PipeItem>[]] & readonly [v.BaseSchema> | v.BaseSchemaAsync>, ...(v.PipeItem> | v.PipeItemAsync>)[]]> ? v.ReadonlyAction extends TPipe[number] ? TKey_4 : never : never; }[keyof TEntries]> | Exclude>, unknown> | v.NullishSchema>, unknown> | v.OptionalSchema>, unknown>) | (v.ExactOptionalSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.NullishSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.OptionalSchemaAsync> | v.BaseSchemaAsync>, unknown>) ? undefined extends TEntries[TKey_3]["default"] ? TKey_3 : never : never; }[keyof TEntries]>, { [TKey_4 in keyof TEntries]: TEntries[TKey_4] extends v.SchemaWithPipe>, ...v.PipeItem>[]] & readonly [v.BaseSchema> | v.BaseSchemaAsync>, ...(v.PipeItem> | v.PipeItemAsync>)[]]> | v.SchemaWithPipeAsync>, ...v.PipeItem>[]] & readonly [v.BaseSchema> | v.BaseSchemaAsync>, ...(v.PipeItem> | v.PipeItemAsync>)[]]> ? v.ReadonlyAction extends TPipe[number] ? TKey_4 : never : never; }[keyof TEntries]>> extends infer T ? { [TKey in keyof T]: (Readonly<{ [TKey_2 in keyof { -readonly [TKey_1 in keyof TEntries]: v.InferOutput; }]?: unknown; } & Omit<{ -readonly [TKey_1 in keyof TEntries]: v.InferOutput; }, { [TKey_3 in keyof TEntries]: TEntries[TKey_3] extends (v.ExactOptionalSchema>, unknown> | v.NullishSchema>, unknown> | v.OptionalSchema>, unknown>) | (v.ExactOptionalSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.NullishSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.OptionalSchemaAsync> | v.BaseSchemaAsync>, unknown>) ? undefined extends TEntries[TKey_3]["default"] ? TKey_3 : never : never; }[keyof TEntries]> & Partial; }, { [TKey_3 in keyof TEntries]: TEntries[TKey_3] extends (v.ExactOptionalSchema>, unknown> | v.NullishSchema>, unknown> | v.OptionalSchema>, unknown>) | (v.ExactOptionalSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.NullishSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.OptionalSchemaAsync> | v.BaseSchemaAsync>, unknown>) ? undefined extends TEntries[TKey_3]["default"] ? TKey_3 : never : never; }[keyof TEntries]>>> & Pick<{ [TKey_2 in keyof { -readonly [TKey_1 in keyof TEntries]: v.InferOutput; }]?: unknown; } & Omit<{ -readonly [TKey_1 in keyof TEntries]: v.InferOutput; }, { [TKey_3 in keyof TEntries]: TEntries[TKey_3] extends (v.ExactOptionalSchema>, unknown> | v.NullishSchema>, unknown> | v.OptionalSchema>, unknown>) | (v.ExactOptionalSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.NullishSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.OptionalSchemaAsync> | v.BaseSchemaAsync>, unknown>) ? undefined extends TEntries[TKey_3]["default"] ? TKey_3 : never : never; }[keyof TEntries]> & Partial; }, { [TKey_3 in keyof TEntries]: TEntries[TKey_3] extends (v.ExactOptionalSchema>, unknown> | v.NullishSchema>, unknown> | v.OptionalSchema>, unknown>) | (v.ExactOptionalSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.NullishSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.OptionalSchemaAsync> | v.BaseSchemaAsync>, unknown>) ? undefined extends TEntries[TKey_3]["default"] ? TKey_3 : never : never; }[keyof TEntries]>>, Exclude>, ...v.PipeItem>[]] & readonly [v.BaseSchema> | v.BaseSchemaAsync>, ...(v.PipeItem> | v.PipeItemAsync>)[]]> | v.SchemaWithPipeAsync>, ...v.PipeItem>[]] & readonly [v.BaseSchema> | v.BaseSchemaAsync>, ...(v.PipeItem> | v.PipeItemAsync>)[]]> ? v.ReadonlyAction extends TPipe[number] ? TKey_4 : never : never; }[keyof TEntries]> | Exclude<{ [TKey_3 in keyof TEntries]: TEntries[TKey_3] extends (v.ExactOptionalSchema>, unknown> | v.NullishSchema>, unknown> | v.OptionalSchema>, unknown>) | (v.ExactOptionalSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.NullishSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.OptionalSchemaAsync> | v.BaseSchemaAsync>, unknown>) ? undefined extends TEntries[TKey_3]["default"] ? TKey_3 : never : never; }[keyof TEntries], { [TKey_4 in keyof TEntries]: TEntries[TKey_4] extends v.SchemaWithPipe>, ...v.PipeItem>[]] & readonly [v.BaseSchema> | v.BaseSchemaAsync>, ...(v.PipeItem> | v.PipeItemAsync>)[]]> | v.SchemaWithPipeAsync>, ...v.PipeItem>[]] & readonly [v.BaseSchema> | v.BaseSchemaAsync>, ...(v.PipeItem> | v.PipeItemAsync>)[]]> ? v.ReadonlyAction extends TPipe[number] ? TKey_4 : never : never; }[keyof TEntries]> | Exclude>, unknown> | v.NullishSchema>, unknown> | v.OptionalSchema>, unknown>) | (v.ExactOptionalSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.NullishSchemaAsync> | v.BaseSchemaAsync>, unknown> | v.OptionalSchemaAsync> | v.BaseSchemaAsync>, unknown>) ? undefined extends TEntries[TKey_3]["default"] ? TKey_3 : never : never; }[keyof TEntries]>, { [TKey_4 in keyof TEntries]: TEntries[TKey_4] extends v.SchemaWithPipe>, ...v.PipeItem>[]] & readonly [v.BaseSchema> | v.BaseSchemaAsync>, ...(v.PipeItem> | v.PipeItemAsync>)[]]> | v.SchemaWithPipeAsync>, ...v.PipeItem>[]] & readonly [v.BaseSchema> | v.BaseSchemaAsync>, ...(v.PipeItem> | v.PipeItemAsync>)[]]> ? v.ReadonlyAction extends TPipe[number] ? TKey_4 : never : never; }[keyof TEntries]>>)[TKey]; } : never>]>; /** Helper function to cast the inferred input of a schema to a different type. */ export declare function mask(schema: TSchema): v.GenericSchema ? TMask : never, TMask extends v.InferInput ? TMask : never>; export {}; //# sourceMappingURL=helpers.d.ts.map