import { MixedLocale } from './locale'; import type { AnyObject, InternalOptions, Callback, Message, Maybe, Preserve, Optionals } from './types'; import type Reference from './Reference'; import { Asserts, Defined, If, Thunk, TypeOf } from './util/types'; import BaseSchema, { AnySchema, SchemaInnerTypeDescription, SchemaSpec } from './schema'; import Lazy from './Lazy'; export declare type RejectorFn = (value: any, index: number, array: any[]) => boolean; export declare function create = AnySchema>(type?: T): OptionalArraySchema[] | undefined>; export declare namespace create { var prototype: ArraySchema; } export default class ArraySchema, C extends AnyObject = AnyObject, TIn extends Maybe[]> = TypeOf[] | undefined, TOut extends Maybe[]> = Asserts[] | Optionals> extends BaseSchema { innerType?: T; constructor(type?: T); protected _typeCheck(v: any): v is NonNullable; private get _subType(); protected _cast(_value: any, _opts: InternalOptions): any; protected _validate(_value: any, options: InternalOptions | undefined, callback: Callback): void; clone(spec?: SchemaSpec): this; concat>(schema: TOther): TOther; concat(schema: any): any; of(schema: TInner): ArraySchema; length(length: number | Reference, message?: Message<{ length: number; }>): this; min(min: number | Reference, message?: Message<{ min: number; }>): this; max(max: number | Reference, message?: Message<{ max: number; }>): this; ensure(): RequiredArraySchema; compact(rejector?: RejectorFn): this; describe(): SchemaInnerTypeDescription; nullable(isNullable?: true): ArraySchema; nullable(isNullable: false): ArraySchema>; defined(): DefinedArraySchema; required(msg?: MixedLocale['required']): RequiredArraySchema; } export interface DefinedArraySchema, TContext extends AnyObject, TIn extends Maybe[]>> extends ArraySchema[] | Preserve> { default>(def: Thunk): If, DefinedArraySchema>>; defined(msg?: MixedLocale['defined']): this; required(msg?: MixedLocale['required']): RequiredArraySchema; optional(): ArraySchema; notRequired(): ArraySchema; nullable(isNullable?: true): DefinedArraySchema; nullable(isNullable: false): RequiredArraySchema>; } export interface RequiredArraySchema, TContext extends AnyObject, TIn extends Maybe[]>> extends ArraySchema[]> { default>(def: Thunk): If, RequiredArraySchema>>; defined(msg?: MixedLocale['defined']): DefinedArraySchema; required(msg?: MixedLocale['required']): this; optional(): ArraySchema; notRequired(): ArraySchema; nullable(isNullable?: true): RequiredArraySchema; nullable(isNullable: false): RequiredArraySchema>; } export interface OptionalArraySchema, TContext extends AnyObject = AnyObject, TIn extends Maybe[]> = TypeOf[] | undefined> extends ArraySchema { default>(def: Thunk): If, ArraySchema>>; defined(msg?: MixedLocale['defined']): DefinedArraySchema; required(msg?: MixedLocale['required']): RequiredArraySchema; optional(): ArraySchema; notRequired(): ArraySchema; nullable(isNullable?: true): OptionalArraySchema; nullable(isNullable: false): OptionalArraySchema>; }