import type { Callback, ValidateOptions } from './types'; import type { ResolveOptions } from './Condition'; import type { AnySchema, CastOptions } from './schema'; import { TypedSchema, TypeOf } from './util/types'; declare type ContextOf = T extends AnySchema ? C : never; export declare type LazyBuilder = (value: any, options: ResolveOptions) => T; export declare function create(builder: LazyBuilder): Lazy>; export declare type LazyReturnValue = T extends Lazy ? TSchema : never; export declare type LazyType = LazyReturnValue extends TypedSchema ? TypeOf> : never; declare class Lazy> implements TypedSchema { private builder; type: "lazy"; __isYupSchema__: boolean; readonly __inputType: T['__inputType']; readonly __outputType: T['__outputType']; constructor(builder: LazyBuilder); private _resolve; resolve(options: ResolveOptions): T; cast(value: any, options?: CastOptions): T['__inputType']; validate(value: any, options?: ValidateOptions, maybeCb?: Callback): T['__outputType']; validateSync(value: any, options?: ValidateOptions): T['__outputType']; validateAt(path: string, value: any, options?: ValidateOptions): Promise; validateSyncAt(path: string, value: any, options?: ValidateOptions): any; describe(): any; isValid(value: any, options?: ValidateOptions): Promise; isValidSync(value: any, options?: ValidateOptions): boolean; } export default Lazy;