import { MixedLocale } from './locale'; import Ref from './Reference'; import type { AnyObject, Maybe } from './types'; import type { Defined, If, Thunk } from './util/types'; import BaseSchema from './schema'; export declare function create(): DateSchema, Date | undefined>; export declare namespace create { var prototype: DateSchema; var INVALID_DATE: Date; } export default class DateSchema = Date | undefined, TContext extends AnyObject = AnyObject, TOut extends TType = TType> extends BaseSchema { static INVALID_DATE: Date; constructor(); protected _typeCheck(v: any): v is NonNullable; private prepareParam; min(min: unknown | Ref, message?: import("./types").Message<{ min: string | Date; }>): this; max(max: unknown | Ref, message?: import("./types").Message<{ max: string | Date; }>): this; } export default interface DateSchema, TContext extends AnyObject = AnyObject, TOut extends TType = TType> extends BaseSchema { concat>(schema: TOther): TOther; default>(def: Thunk): If, DateSchema, TContext>>; defined(msg?: MixedLocale['defined']): DefinedDateSchema; required(msg?: MixedLocale['required']): RequiredDateSchema; optional(): DateSchema; notRequired(): DateSchema; nullable(isNullable?: true): DateSchema; nullable(isNullable: false): DateSchema, TContext>; } export interface DefinedDateSchema, TContext extends AnyObject = AnyObject> extends DateSchema> { default>(def: Thunk): If, DefinedDateSchema, TContext>>; defined(msg?: MixedLocale['defined']): this; required(msg?: MixedLocale['required']): RequiredDateSchema; optional(): DateSchema; notRequired(): DateSchema; nullable(isNullable?: true): RequiredDateSchema; nullable(isNullable: false): RequiredDateSchema, TContext>; } export interface RequiredDateSchema, TContext extends AnyObject = AnyObject> extends DateSchema> { default>(def: Thunk): If, RequiredDateSchema, TContext>>; defined(msg?: MixedLocale['defined']): DefinedDateSchema; required(msg?: MixedLocale['required']): RequiredDateSchema; optional(): DateSchema; notRequired(): DateSchema; nullable(isNullable?: true): RequiredDateSchema; nullable(isNullable: false): RequiredDateSchema, TContext>; }