UNPKG

valibot

Version:

The modular and type safe schema library for validating structural data

1,005 lines (980 loc) 569 kB
/** * Checks if the input matches the schema. As this is an assertion function, it * can be used as a type guard. * * @param schema The schema to be used. * @param input The input to be tested. */ declare function assert<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema, input: unknown): asserts input is InferInput<TSchema>; /** * Changes the local configuration of a schema. * * @param schema The schema to configure. * @param config The parse configuration. * * @returns The configured schema. */ declare function config<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema, config: Config<InferIssue<TSchema>>): TSchema; /** * Fallback type. */ type Fallback<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>> = MaybeReadonly<InferOutput<TSchema>> | ((dataset?: OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>, config?: Config<InferIssue<TSchema>>) => MaybeReadonly<InferOutput<TSchema>>); /** * Schema with fallback type. */ type SchemaWithFallback<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>, TFallback extends Fallback<TSchema>> = TSchema & { /** * The fallback value. */ readonly fallback: TFallback; }; /** * Returns a fallback value as output if the input does not match the schema. * * @param schema The schema to catch. * @param fallback The fallback value. * * @returns The passed schema. */ declare function fallback<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>, const TFallback extends Fallback<TSchema>>(schema: TSchema, fallback: TFallback): SchemaWithFallback<TSchema, TFallback>; /** * Fallback async type. */ type FallbackAsync<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>> = MaybeReadonly<InferOutput<TSchema>> | ((dataset?: OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>, config?: Config<InferIssue<TSchema>>) => MaybePromise<MaybeReadonly<InferOutput<TSchema>>>); /** * Schema with fallback async type. */ type SchemaWithFallbackAsync<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, TFallback extends FallbackAsync<TSchema>> = Omit<TSchema, 'async' | '~standard' | '~run'> & { /** * The fallback value. */ readonly fallback: TFallback; /** * Whether it's async. */ readonly async: true; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferInput<TSchema>, InferOutput<TSchema>>; /** * Parses unknown input values. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => Promise<OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>>; }; /** * Returns a fallback value as output if the input does not match the schema. * * @param schema The schema to catch. * @param fallback The fallback value. * * @returns The passed schema. */ declare function fallbackAsync<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, const TFallback extends FallbackAsync<TSchema>>(schema: TSchema, fallback: TFallback): SchemaWithFallbackAsync<TSchema, TFallback>; /** * Flat errors type. */ type FlatErrors<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>> | undefined> = Prettify<{ /** * The root errors. * * Hint: The error messages of issues without a path that belong to the root * of the schema are added to this key. */ readonly root?: [string, ...string[]]; /** * The nested errors. * * Hint: The error messages of issues with a path that belong to the nested * parts of the schema and can be converted to a dot path are added to this * key. */ readonly nested?: Prettify<Readonly<Partial<Record<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>> ? IssueDotPath<TSchema> : string, [ string, ...string[] ]>>>>; /** * The other errors. * * Hint: Some issue paths, for example for complex data types like `Set` and * `Map`, have no key or a key that cannot be converted to a dot path. These * error messages are added to this key. */ readonly other?: [string, ...string[]]; }>; /** * Flatten the error messages of issues. * * @param issues The list of issues. * * @returns A flat error object. */ declare function flatten(issues: [BaseIssue<unknown>, ...BaseIssue<unknown>[]]): FlatErrors<undefined>; /** * Flatten the error messages of issues. * * @param issues The list of issues. * * @returns A flat error object. */ declare function flatten<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>>(issues: [InferIssue<TSchema>, ...InferIssue<TSchema>[]]): FlatErrors<TSchema>; /** * Extracts the exact keys of a tuple, array or object. */ type KeyOf$1<TValue> = IsAny<TValue> extends true ? never : TValue extends readonly unknown[] ? number extends TValue['length'] ? number : { [TKey in keyof TValue]: TKey extends `${infer TIndex extends number}` ? TIndex : never; }[number] : TValue extends Record<string, unknown> ? keyof TValue & (string | number) : never; /** * Path type. */ type Path$1 = readonly (string | number)[]; /** * Required path type. */ type RequiredPath$1 = readonly [string | number, ...Path$1]; /** * Lazily evaluate only the last valid path segment based on the given value. */ type LazyPath$1<TValue, TPathToCheck extends Path$1, TValidPath extends Path$1 = readonly []> = TPathToCheck extends readonly [] ? TValidPath : TPathToCheck extends readonly [ infer TFirstKey extends KeyOf$1<TValue> & keyof TValue, ...infer TPathRest extends Path$1 ] ? LazyPath$1<TValue[TFirstKey], TPathRest, readonly [...TValidPath, TFirstKey]> : IsNever<KeyOf$1<TValue>> extends false ? readonly [...TValidPath, KeyOf$1<TValue>] : TValidPath; /** * Returns the path if valid, otherwise the last possible valid path based on * the given value. */ type ValidPath$1<TValue extends Record<string, unknown> | ArrayLike<unknown>, TPath extends RequiredPath$1> = TPath extends LazyPath$1<TValue, TPath> ? TPath : LazyPath$1<TValue, TPath>; /** * Forwards the issues of the passed validation action. * * @param action The validation action. * @param path The path to forward the issues to. * * @returns The modified action. */ declare function forward<TInput extends Record<string, unknown> | ArrayLike<unknown>, TIssue extends BaseIssue<unknown>, const TPath extends RequiredPath$1>(action: BaseValidation<TInput, TInput, TIssue>, path: ValidPath$1<TInput, TPath>): BaseValidation<TInput, TInput, TIssue>; /** * Forwards the issues of the passed validation action. * * @param action The validation action. * @param path The path to forward the issues to. * * @returns The modified action. */ declare function forwardAsync<TInput extends Record<string, unknown> | ArrayLike<unknown>, TIssue extends BaseIssue<unknown>, const TPath extends RequiredPath$1>(action: BaseValidation<TInput, TInput, TIssue> | BaseValidationAsync<TInput, TInput, TIssue>, path: ValidPath$1<TInput, TPath>): BaseValidationAsync<TInput, TInput, TIssue>; /** * Schema with default type. */ type SchemaWithDefault = ExactOptionalSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown> | NullableSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown> | NullishSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown> | OptionalSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown> | UndefinedableSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown>; /** * Schema with default async type. */ type SchemaWithDefaultAsync = ExactOptionalSchemaAsync<BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, unknown> | NullableSchemaAsync<BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, unknown> | NullishSchemaAsync<BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, unknown> | OptionalSchemaAsync<BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, unknown> | UndefinedableSchemaAsync<BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, unknown>; /** * Infer default type. */ type InferDefault<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>> | SchemaWithDefault | SchemaWithDefaultAsync> = TSchema extends SchemaWithDefault | SchemaWithDefaultAsync ? TSchema['default'] extends (...args: any) => any ? ReturnType<TSchema['default']> : TSchema['default'] : undefined; /** * Returns the default value of the schema. * * @param schema The schema to get it from. * @param dataset The input dataset if available. * @param config The config if available. * * @returns The default value. */ declare function getDefault<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema, dataset?: UnknownDataset, config?: Config<InferIssue<TSchema>>): InferDefault<TSchema>; /** * Infer defaults type. */ type InferDefaults<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>> = TSchema extends LooseObjectSchema<infer TEntries, ErrorMessage<LooseObjectIssue> | undefined> | ObjectSchema<infer TEntries, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchema<infer TEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchema<infer TEntries, ErrorMessage<StrictObjectIssue> | undefined> ? { -readonly [TKey in keyof TEntries]: InferDefaults<TEntries[TKey]>; } : TSchema extends LooseObjectSchemaAsync<infer TEntries, ErrorMessage<LooseObjectIssue> | undefined> | ObjectSchemaAsync<infer TEntries, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchemaAsync<infer TEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchemaAsync<infer TEntries, ErrorMessage<StrictObjectIssue> | undefined> ? { -readonly [TKey in keyof TEntries]: InferDefaults<TEntries[TKey]>; } : TSchema extends LooseTupleSchema<infer TItems, ErrorMessage<LooseTupleIssue> | undefined> | StrictTupleSchema<infer TItems, ErrorMessage<StrictTupleIssue> | undefined> | TupleSchema<infer TItems, ErrorMessage<TupleIssue> | undefined> | TupleWithRestSchema<infer TItems, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<TupleWithRestIssue> | undefined> ? { -readonly [TKey in keyof TItems]: InferDefaults<TItems[TKey]>; } : TSchema extends LooseTupleSchemaAsync<infer TItems, ErrorMessage<LooseTupleIssue> | undefined> | StrictTupleSchemaAsync<infer TItems, ErrorMessage<StrictTupleIssue> | undefined> | TupleSchemaAsync<infer TItems, ErrorMessage<TupleIssue> | undefined> | TupleWithRestSchemaAsync<infer TItems, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<TupleWithRestIssue> | undefined> ? { -readonly [TKey in keyof TItems]: InferDefaults<TItems[TKey]>; } : Awaited<InferDefault<TSchema>>; /** * Returns the default values of the schema. * * Hint: The difference to `getDefault` is that for object and tuple schemas * this function recursively returns the default values of the subschemas * instead of `undefined`. * * @param schema The schema to get them from. * * @returns The default values. */ declare function getDefaults<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined> | LooseTupleSchema<TupleItems, ErrorMessage<LooseTupleIssue> | undefined> | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchema<ObjectEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchema<ObjectEntries, ErrorMessage<StrictObjectIssue> | undefined> | StrictTupleSchema<TupleItems, ErrorMessage<StrictTupleIssue> | undefined> | TupleSchema<TupleItems, ErrorMessage<TupleIssue> | undefined> | TupleWithRestSchema<TupleItems, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<TupleWithRestIssue> | undefined>>(schema: TSchema): InferDefaults<TSchema>; /** * Returns the default values of the schema. * * Hint: The difference to `getDefault` is that for object and tuple schemas * this function recursively returns the default values of the subschemas * instead of `undefined`. * * @param schema The schema to get them from. * * @returns The default values. */ declare function getDefaultsAsync<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>> | LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined> | LooseObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<LooseObjectIssue> | undefined> | LooseTupleSchema<TupleItems, ErrorMessage<LooseTupleIssue> | undefined> | LooseTupleSchemaAsync<TupleItemsAsync, ErrorMessage<LooseTupleIssue> | undefined> | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined> | ObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchema<ObjectEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | ObjectWithRestSchemaAsync<ObjectEntriesAsync, BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchema<ObjectEntries, ErrorMessage<StrictObjectIssue> | undefined> | StrictObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<StrictObjectIssue> | undefined> | StrictTupleSchema<TupleItems, ErrorMessage<StrictTupleIssue> | undefined> | StrictTupleSchemaAsync<TupleItemsAsync, ErrorMessage<StrictTupleIssue> | undefined> | TupleSchema<TupleItems, ErrorMessage<TupleIssue> | undefined> | TupleSchemaAsync<TupleItemsAsync, ErrorMessage<TupleIssue> | undefined> | TupleWithRestSchema<TupleItems, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<TupleWithRestIssue> | undefined> | TupleWithRestSchemaAsync<TupleItemsAsync, BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<TupleWithRestIssue> | undefined>>(schema: TSchema): Promise<InferDefaults<TSchema>>; /** * Infer fallback type. */ type InferFallback<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>> = TSchema extends SchemaWithFallback<BaseSchema<unknown, unknown, BaseIssue<unknown>>, infer TFallback> | SchemaWithFallbackAsync<BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, infer TFallback> ? TFallback extends InferOutput<TSchema> ? TFallback : TFallback extends () => MaybePromise<InferOutput<TSchema>> ? ReturnType<TFallback> : never : undefined; /** * Returns the fallback value of the schema. * * @param schema The schema to get it from. * @param dataset The output dataset if available. * @param config The config if available. * * @returns The fallback value. */ declare function getFallback<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema, dataset?: OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>, config?: Config<InferIssue<TSchema>>): InferFallback<TSchema>; /** * Infer fallbacks type. */ type InferFallbacks<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>> = TSchema extends LooseObjectSchema<infer TEntries, ErrorMessage<LooseObjectIssue> | undefined> | ObjectSchema<infer TEntries, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchema<infer TEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchema<infer TEntries, ErrorMessage<StrictObjectIssue> | undefined> ? { -readonly [TKey in keyof TEntries]: InferFallbacks<TEntries[TKey]>; } : TSchema extends LooseObjectSchemaAsync<infer TEntries, ErrorMessage<LooseObjectIssue> | undefined> | ObjectSchemaAsync<infer TEntries, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchemaAsync<infer TEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchemaAsync<infer TEntries, ErrorMessage<StrictObjectIssue> | undefined> ? { -readonly [TKey in keyof TEntries]: InferFallbacks<TEntries[TKey]>; } : TSchema extends LooseTupleSchema<infer TItems, ErrorMessage<LooseTupleIssue> | undefined> | StrictTupleSchema<infer TItems, ErrorMessage<StrictTupleIssue> | undefined> | TupleSchema<infer TItems, ErrorMessage<TupleIssue> | undefined> | TupleWithRestSchema<infer TItems, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<TupleWithRestIssue> | undefined> ? { -readonly [TKey in keyof TItems]: InferFallbacks<TItems[TKey]>; } : TSchema extends LooseTupleSchemaAsync<infer TItems, ErrorMessage<LooseTupleIssue> | undefined> | StrictTupleSchemaAsync<infer TItems, ErrorMessage<StrictTupleIssue> | undefined> | TupleSchemaAsync<infer TItems, ErrorMessage<TupleIssue> | undefined> | TupleWithRestSchemaAsync<infer TItems, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<TupleWithRestIssue> | undefined> ? { -readonly [TKey in keyof TItems]: InferFallbacks<TItems[TKey]>; } : Awaited<InferFallback<TSchema>>; /** * Returns the fallback values of the schema. * * Hint: The difference to `getFallback` is that for object and tuple schemas * this function recursively returns the fallback values of the subschemas * instead of `undefined`. * * @param schema The schema to get them from. * * @returns The fallback values. */ declare function getFallbacks<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined> | LooseTupleSchema<TupleItems, ErrorMessage<LooseTupleIssue> | undefined> | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchema<ObjectEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchema<ObjectEntries, ErrorMessage<StrictObjectIssue> | undefined> | StrictTupleSchema<TupleItems, ErrorMessage<StrictTupleIssue> | undefined> | TupleSchema<TupleItems, ErrorMessage<TupleIssue> | undefined> | TupleWithRestSchema<TupleItems, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<TupleWithRestIssue> | undefined>>(schema: TSchema): InferFallbacks<TSchema>; /** * Returns the fallback values of the schema. * * Hint: The difference to `getFallback` is that for object and tuple schemas * this function recursively returns the fallback values of the subschemas * instead of `undefined`. * * @param schema The schema to get them from. * * @returns The fallback values. */ declare function getFallbacksAsync<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>> | LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined> | LooseObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<LooseObjectIssue> | undefined> | LooseTupleSchema<TupleItems, ErrorMessage<LooseTupleIssue> | undefined> | LooseTupleSchemaAsync<TupleItemsAsync, ErrorMessage<LooseTupleIssue> | undefined> | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined> | ObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchema<ObjectEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | ObjectWithRestSchemaAsync<ObjectEntriesAsync, BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchema<ObjectEntries, ErrorMessage<StrictObjectIssue> | undefined> | StrictObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<StrictObjectIssue> | undefined> | StrictTupleSchema<TupleItems, ErrorMessage<StrictTupleIssue> | undefined> | StrictTupleSchemaAsync<TupleItemsAsync, ErrorMessage<StrictTupleIssue> | undefined> | TupleSchema<TupleItems, ErrorMessage<TupleIssue> | undefined> | TupleSchemaAsync<TupleItemsAsync, ErrorMessage<TupleIssue> | undefined> | TupleWithRestSchema<TupleItems, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<TupleWithRestIssue> | undefined> | TupleWithRestSchemaAsync<TupleItemsAsync, BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<TupleWithRestIssue> | undefined>>(schema: TSchema): Promise<InferFallbacks<TSchema>>; /** * Checks if the input matches the schema. By using a type predicate, this * function can be used as a type guard. * * @param schema The schema to be used. * @param input The input to be tested. * * @returns Whether the input matches the schema. */ declare function is<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema, input: unknown): input is InferInput<TSchema>; /** * Schema type. */ type Schema$9 = LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined> | LooseObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<LooseObjectIssue> | undefined> | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined> | ObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchema<ObjectEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | ObjectWithRestSchemaAsync<ObjectEntriesAsync, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchema<ObjectEntries, ErrorMessage<StrictObjectIssue> | undefined> | StrictObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<StrictObjectIssue> | undefined>; /** * Force tuple type. */ type ForceTuple<T> = T extends [string, ...string[]] ? T : []; /** * Object keys type. */ type ObjectKeys$1<TSchema extends Schema$9> = ForceTuple<UnionToTuple<keyof TSchema['entries']>>; /** * Creates a picklist schema of object keys. * * @param schema The object schema. * * @returns A picklist schema. */ declare function keyof<const TSchema extends Schema$9>(schema: TSchema): PicklistSchema<ObjectKeys$1<TSchema>, undefined>; /** * Creates a picklist schema of object keys. * * @param schema The object schema. * @param message The error message. * * @returns A picklist schema. */ declare function keyof<const TSchema extends Schema$9, const TMessage extends ErrorMessage<PicklistIssue> | undefined>(schema: TSchema, message: TMessage): PicklistSchema<ObjectKeys$1<TSchema>, TMessage>; /** * Schema type. */ type Schema$8 = SchemaWithoutPipe<LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined> | LooseObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<LooseObjectIssue> | undefined> | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined> | ObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchema<ObjectEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | ObjectWithRestSchemaAsync<ObjectEntriesAsync, BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchema<ObjectEntries, ErrorMessage<StrictObjectIssue> | undefined> | StrictObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<StrictObjectIssue> | undefined>>; /** * Schema with omit type. */ type SchemaWithOmit<TSchema extends Schema$8, TKeys extends ObjectKeys<TSchema>> = TSchema extends ObjectSchema<infer TEntries, ErrorMessage<ObjectIssue> | undefined> | StrictObjectSchema<infer TEntries, ErrorMessage<StrictObjectIssue> | undefined> ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & { /** * The object entries. */ readonly entries: Omit<TEntries, TKeys[number]>; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferObjectInput<Omit<TEntries, TKeys[number]>>, InferObjectOutput<Omit<TEntries, TKeys[number]>>>; /** * Parses unknown input. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => OutputDataset<InferObjectOutput<Omit<TEntries, TKeys[number]>>, Extract<InferIssue<TSchema>, { type: TSchema['type']; }> | InferObjectIssue<Omit<TEntries, TKeys[number]>>>; /** * The input, output and issue type. * * @internal */ readonly '~types'?: { readonly input: InferObjectInput<Omit<TEntries, TKeys[number]>>; readonly output: InferObjectOutput<Omit<TEntries, TKeys[number]>>; readonly issue: Extract<InferIssue<TSchema>, { type: TSchema['type']; }> | InferObjectIssue<Omit<TEntries, TKeys[number]>>; } | undefined; } : TSchema extends ObjectSchemaAsync<infer TEntries, ErrorMessage<ObjectIssue> | undefined> | StrictObjectSchemaAsync<infer TEntries, ErrorMessage<StrictObjectIssue> | undefined> ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & { /** * The object entries. */ readonly entries: Omit<TEntries, TKeys[number]>; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferObjectInput<Omit<TEntries, TKeys[number]>>, InferObjectOutput<Omit<TEntries, TKeys[number]>>>; /** * Parses unknown input. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => Promise<OutputDataset<InferObjectOutput<Omit<TEntries, TKeys[number]>>, Extract<InferIssue<TSchema>, { type: TSchema['type']; }> | InferObjectIssue<Omit<TEntries, TKeys[number]>>>>; /** * The input, output and issue type. * * @internal */ readonly '~types'?: { readonly input: InferObjectInput<Omit<TEntries, TKeys[number]>>; readonly output: InferObjectOutput<Omit<TEntries, TKeys[number]>>; readonly issue: Extract<InferIssue<TSchema>, { type: TSchema['type']; }> | InferObjectIssue<Omit<TEntries, TKeys[number]>>; } | undefined; } : TSchema extends LooseObjectSchema<infer TEntries, ErrorMessage<LooseObjectIssue> | undefined> ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & { /** * The object entries. */ readonly entries: Omit<TEntries, TKeys[number]>; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferObjectInput<Omit<TEntries, TKeys[number]>> & { [key: string]: unknown; }, InferObjectInput<Omit<TEntries, TKeys[number]>> & { [key: string]: unknown; }>; /** * Parses unknown input. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => OutputDataset<InferObjectOutput<Omit<TEntries, TKeys[number]>> & { [key: string]: unknown; }, Extract<InferIssue<TSchema>, { type: TSchema['type']; }> | InferObjectIssue<Omit<TEntries, TKeys[number]>>>; /** * The input, output and issue type. * * @internal */ readonly '~types'?: { readonly input: InferObjectInput<Omit<TEntries, TKeys[number]>> & { [key: string]: unknown; }; readonly output: InferObjectOutput<Omit<TEntries, TKeys[number]>> & { [key: string]: unknown; }; readonly issue: Extract<InferIssue<TSchema>, { type: TSchema['type']; }> | InferObjectIssue<Omit<TEntries, TKeys[number]>>; } | undefined; } : TSchema extends LooseObjectSchemaAsync<infer TEntries, ErrorMessage<LooseObjectIssue> | undefined> ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & { /** * The object entries. */ readonly entries: Omit<TEntries, TKeys[number]>; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferObjectInput<Omit<TEntries, TKeys[number]>> & { [key: string]: unknown; }, InferObjectInput<Omit<TEntries, TKeys[number]>> & { [key: string]: unknown; }>; /** * Parses unknown input. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => Promise<OutputDataset<InferObjectOutput<Omit<TEntries, TKeys[number]>> & { [key: string]: unknown; }, Extract<InferIssue<TSchema>, { type: TSchema['type']; }> | InferObjectIssue<Omit<TEntries, TKeys[number]>>>>; /** * The input, output and issue type. * * @internal */ readonly '~types'?: { readonly input: InferObjectInput<Omit<TEntries, TKeys[number]>> & { [key: string]: unknown; }; readonly output: InferObjectOutput<Omit<TEntries, TKeys[number]>> & { [key: string]: unknown; }; readonly issue: Extract<InferIssue<TSchema>, { type: TSchema['type']; }> | InferObjectIssue<Omit<TEntries, TKeys[number]>>; } | undefined; } : TSchema extends ObjectWithRestSchema<infer TEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & { /** * The object entries. */ readonly entries: Omit<TEntries, TKeys[number]>; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferObjectInput<Omit<TEntries, TKeys[number]>> & { [key: string]: InferInput<TSchema['rest']>; }, InferObjectOutput<Omit<TEntries, TKeys[number]>> & { [key: string]: InferOutput<TSchema['rest']>; }>; /** * Parses unknown input. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => OutputDataset<InferObjectOutput<Omit<TEntries, TKeys[number]>> & { [key: string]: InferOutput<TSchema['rest']>; }, Extract<InferIssue<TSchema>, { type: TSchema['type']; }> | InferObjectIssue<Omit<TEntries, TKeys[number]>> | InferIssue<TSchema['rest']>>; /** * The input, output and issue type. * * @internal */ readonly '~types'?: { readonly input: InferObjectInput<Omit<TEntries, TKeys[number]>> & { [key: string]: InferInput<TSchema['rest']>; }; readonly output: InferObjectOutput<Omit<TEntries, TKeys[number]>> & { [key: string]: InferOutput<TSchema['rest']>; }; readonly issue: Extract<InferIssue<TSchema>, { type: TSchema['type']; }> | InferObjectIssue<Omit<TEntries, TKeys[number]>> | InferIssue<TSchema['rest']>; } | undefined; } : TSchema extends ObjectWithRestSchemaAsync<infer TEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & { /** * The object entries. */ readonly entries: Omit<TEntries, TKeys[number]>; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferObjectInput<Omit<TEntries, TKeys[number]>> & { [key: string]: InferInput<TSchema['rest']>; }, InferObjectOutput<Omit<TEntries, TKeys[number]>> & { [key: string]: InferOutput<TSchema['rest']>; }>; /** * Parses unknown input. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => Promise<OutputDataset<InferObjectOutput<Omit<TEntries, TKeys[number]>> & { [key: string]: InferOutput<TSchema['rest']>; }, Extract<InferIssue<TSchema>, { type: TSchema['type']; }> | InferObjectIssue<Omit<TEntries, TKeys[number]>> | InferIssue<TSchema['rest']>>>; /** * The input, output and issue type. * * @internal */ readonly '~types'?: { readonly input: InferObjectInput<Omit<TEntries, TKeys[number]>> & { [key: string]: InferInput<TSchema['rest']>; }; readonly output: InferObjectOutput<Omit<TEntries, TKeys[number]>> & { [key: string]: InferOutput<TSchema['rest']>; }; readonly issue: Extract<InferIssue<TSchema>, { type: TSchema['type']; }> | InferObjectIssue<Omit<TEntries, TKeys[number]>> | InferIssue<TSchema['rest']>; } | undefined; } : never; /** * Creates a modified copy of an object schema that does not contain the * selected entries. * * @param schema The schema to omit from. * @param keys The selected entries. * * @returns An object schema. */ declare function omit<const TSchema extends Schema$8, const TKeys extends ObjectKeys<TSchema>>(schema: TSchema, keys: TKeys): SchemaWithOmit<TSchema, TKeys>; /** * Parses an unknown input based on a schema. * * @param schema The schema to be used. * @param input The input to be parsed. * @param config The parse configuration. * * @returns The parsed input. */ declare function parse<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema, input: unknown, config?: Config<InferIssue<TSchema>>): InferOutput<TSchema>; /** * Parses an unknown input based on a schema. * * @param schema The schema to be used. * @param input The input to be parsed. * @param config The parse configuration. * * @returns The parsed input. */ declare function parseAsync<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema, input: unknown, config?: Config<InferIssue<TSchema>>): Promise<InferOutput<TSchema>>; /** * The parser interface. */ interface Parser<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>, TConfig extends Config<InferIssue<TSchema>> | undefined> { /** * Parses an unknown input based on the schema. */ (input: unknown): InferOutput<TSchema>; /** * The schema to be used. */ readonly schema: TSchema; /** * The parser configuration. */ readonly config: TConfig; } /** * Returns a function that parses an unknown input based on a schema. * * @param schema The schema to be used. * * @returns The parser function. */ declare function parser<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema): Parser<TSchema, undefined>; /** * Returns a function that parses an unknown input based on a schema. * * @param schema The schema to be used. * @param config The parser configuration. * * @returns The parser function. */ declare function parser<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>, const TConfig extends Config<InferIssue<TSchema>> | undefined>(schema: TSchema, config: TConfig): Parser<TSchema, TConfig>; /** * The parser async interface. */ interface ParserAsync<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, TConfig extends Config<InferIssue<TSchema>> | undefined> { /** * Parses an unknown input based on the schema. */ (input: unknown): Promise<InferOutput<TSchema>>; /** * The schema to be used. */ readonly schema: TSchema; /** * The parser configuration. */ readonly config: TConfig; } /** * Returns a function that parses an unknown input based on a schema. * * @param schema The schema to be used. * * @returns The parser function. */ declare function parserAsync<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema): ParserAsync<TSchema, undefined>; /** * Returns a function that parses an unknown input based on a schema. * * @param schema The schema to be used. * @param config The parser configuration. * * @returns The parser function. */ declare function parserAsync<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, const TConfig extends Config<InferIssue<TSchema>> | undefined>(schema: TSchema, config: TConfig): ParserAsync<TSchema, TConfig>; /** * Schema type. */ type Schema$7 = SchemaWithoutPipe<LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined> | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchema<ObjectEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchema<ObjectEntries, ErrorMessage<StrictObjectIssue> | undefined>>; /** * Partial entries type. */ type PartialEntries$1<TEntries extends ObjectEntries, TKeys extends readonly (keyof TEntries)[] | undefined> = { [TKey in keyof TEntries]: TKeys extends readonly (keyof TEntries)[] ? TKey extends TKeys[number] ? OptionalSchema<TEntries[TKey], undefined> : TEntries[TKey] : OptionalSchema<TEntries[TKey], undefined>; }; /** * Schema with partial type. */ type SchemaWithPartial<TSchema extends Schema$7, TKeys extends ObjectKeys<TSchema> | undefined> = TSchema extends ObjectSchema<infer TEntries, ErrorMessage<ObjectIssue> | undefined> | StrictObjectSchema<infer TEntries, ErrorMessage<StrictObjectIssue> | undefined> ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & { /** * The object entries. */ readonly entries: PartialEntries$1<TEntries, TKeys>; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferObjectInput<PartialEntries$1<TEntries, TKeys>>, InferObjectOutput<PartialEntries$1<TEntries, TKeys>>>; /** * Parses unknown input. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => OutputDataset<InferObjectOutput<PartialEntries$1<TEntries, TKeys>>, InferIssue<TSchema>>; /** * The input, output and issue type. * * @internal */ readonly '~types'?: { readonly input: InferObjectInput<PartialEntries$1<TEntries, TKeys>>; readonly output: InferObjectOutput<PartialEntries$1<TEntries, TKeys>>; readonly issue: InferIssue<TSchema>; } | undefined; } : TSchema extends LooseObjectSchema<infer TEntries, ErrorMessage<LooseObjectIssue> | undefined> ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & { /** * The object entries. */ readonly entries: PartialEntries$1<TEntries, TKeys>; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferObjectInput<PartialEntries$1<TEntries, TKeys>> & { [key: string]: unknown; }, InferObjectOutput<PartialEntries$1<TEntries, TKeys>> & { [key: string]: unknown; }>; /** * Parses unknown input. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => OutputDataset<InferObjectOutput<PartialEntries$1<TEntries, TKeys>> & { [key: string]: unknown; }, InferIssue<TSchema>>; /** * The input, output and issue type. * * @internal */ readonly '~types'?: { readonly input: InferObjectInput<PartialEntries$1<TEntries, TKeys>> & { [key: string]: unknown; }; readonly output: InferObjectOutput<PartialEntries$1<TEntries, TKeys>> & { [key: string]: unknown; }; readonly issue: InferIssue<TSchema>; } | undefined; } : TSchema extends ObjectWithRestSchema<infer TEntries, infer TRest, ErrorMessage<ObjectWithRestIssue> | undefined> ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & { /** * The object entries. */ readonly entries: PartialEntries$1<TEntries, TKeys>; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferObjectInput<PartialEntries$1<TEntries, TKeys>> & { [key: string]: InferInput<TRest>; }, InferObjectOutput<PartialEntries$1<TEntries, TKeys>> & { [key: string]: InferOutput<TRest>; }>; /** * Parses unknown input. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => OutputDataset<InferObjectOutput<PartialEntries$1<TEntries, TKeys>> & { [key: string]: InferOutput<TRest>; }, InferIssue<TSchema>>; /** * The input, output and issue type. * * @internal */ readonly '~types'?: { readonly input: InferObjectInput<PartialEntries$1<TEntries, TKeys>> & { [key: string]: InferInput<TRest>; }; readonly output: InferObjectOutput<PartialEntries$1<TEntries, TKeys>> & { [key: string]: InferOutput<TRest>; }; readonly issue: InferIssue<TSchema>; } | undefined; } : never; /** * Creates a modified copy of an object schema that marks all entries as optional. * * @param schema The schema to modify. * * @returns An object schema. */ declare function partial<const TSchema extends Schema$7>(schema: TSchema): SchemaWithPartial<TSchema, undefined>; /** * Creates a modified copy of an object schema that marks the selected entries * as optional. * * @param schema The schema to modify. * @param keys The selected entries. * * @returns An object schema. */ declare function partial<const TSchema extends Schema$7, const TKeys extends ObjectKeys<TSchema>>(schema: TSchema, keys: TKeys): SchemaWithPartial<TSchema, TKeys>; /** * Schema type. */ type Schema$6 = SchemaWithoutPipe<LooseObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<LooseObjectIssue> | undefined> | ObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchemaAsync<ObjectEntriesAsync, BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<StrictObjectIssue> | undefined>>; /** * Partial entries type. */ type PartialEntries<TEntries extends ObjectEntriesAsync, TKeys extends readonly (keyof TEntries)[] | undefined> = { [TKey in keyof TEntries]: TKeys extends readonly (keyof TEntries)[] ? TKey extends TKeys[number] ? OptionalSchemaAsync<TEntries[TKey], undefined> : TEntries[TKey] : OptionalSchemaAsync<TEntries[TKey], undefined>; }; /** * Schema with partial type. */ type SchemaWithPartialAsync<TSchema extends Schema$6, TKeys extends ObjectKeys<TSchema> | undefined> = TSchema extends ObjectSchemaAsync<infer TEntries, ErrorMessage<ObjectIssue> | undefined> | StrictObjectSchemaAsync<infer TEntries, ErrorMessage<StrictObjectIssue> | undefined> ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & { /** * The object entries. */ readonly entries: PartialEntries<TEntries, TKeys>; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferObjectInput<PartialEntries<TEntries, TKeys>>, InferObjectOutput<PartialEntries<TEntries, TKeys>>>; /** * Parses unknown input. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => Promise<OutputDataset<InferObjectOutput<PartialEntries<TEntries, TKeys>>, InferIssue<TSchema>>>; /** * The input, output and issue type. * * @internal */ readonly '~types'?: { readonly input: InferObjectInput<PartialEntries<TEntries, TKeys>>; readonly output: InferObjectOutput<PartialEntries<TEntries, TKeys>>; readonly issue: InferIssue<TSchema>; } | undefined; } : TSchema extends LooseObjectSchemaAsync<infer TEntries, ErrorMessage<LooseObjectIssue> | undefined> ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & { /** * The object entries. */ readonly entries: PartialEntries<TEntries, TKeys>; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferObjectInput<PartialEntries<TEntries, TKeys>> & { [key: string]: unknown; }, InferObjectOutput<PartialEntries<TEntries, TKeys>> & { [key: string]: unknown; }>; /** * Parses unknown input. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => Promise<OutputDataset<InferObjectOutput<PartialEntries<TEntries, TKeys>> & { [key: string]: unknown; }, InferIssue<TSchema>>>; /** * The input, output and issue type. * * @internal */ readonly '~types'?: { readonly input: InferObjectInput<PartialEntries<TEntries, TKeys>> & { [key: string]: unknown; }; readonly output: InferObjectOutput<PartialEntries<TEntries, TKeys>> & { [key: string]: unknown; }; readonly issue: InferIssue<TSchema>; } | undefined; } : TSchema extends ObjectWithRestSchemaAsync<infer TEntries, infer TRest, ErrorMessage<ObjectWithRestIssue> | undefined> ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & { /** * The object entries. */ readonly entries: PartialEntries<TEntries, TKeys>; /** * The Standard Schema properties. * * @internal */ readonly '~standard': StandardProps<InferObjectInput<PartialEntries<TEntries, TKeys>> & { [key: string]: InferInput<TRest>; }, InferObjectOutput<PartialEntries<TEntries, TKeys>> & { [key: string]: InferOutput<TRest>; }>; /** * Parses unknown input. * * @param dataset The input dataset. * @param config The configuration. * * @returns The output dataset. * * @internal */ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => Promise<OutputDataset<InferObjectOutput<PartialEntries<TEntries, TKeys>> & { [key: string]: InferOutput<TRest>; }, InferIssue<TSchema>>>; /** * The input, output and issue type. * * @internal */ readonly '~types'?: { readonly input: InferObjectInput<PartialEntries<TEntries, TKeys>> & { [key: string]: InferInput<TRest>; }; readonly output: InferObjectOutput<PartialEntries<TEntries, TKeys>> & { [key: string]: InferOutput<TRest>; }; readonly issue: InferIssue<TSchema>; } | undefined; } : never; /** * Creates a modified copy of an object schema that marks all entries as optional. * * @param schema The schema to modify. * * @returns An object schema. */ declare function partialAsync<const TSchema extends Schema$6>(schema: TSchema): SchemaWithPartialAsync<TSchema, undefined>; /** * Creates a modified copy of an object schema that marks the selected entries * as optional. * * @param schema The schema to modify. * @param keys The selected entries. * * @returns An object schema. */ declare function partialAsync<const TSchema extends Schema$6, const TKeys extends ObjectKeys<TSchema>>(schema: TSchema, keys: TKeys): SchemaWithPartialAsync<TSchema, TKeys>; /** * The schema