import { MixedType, arrayTypeSchemaSpec } from './MixedType';
import { ErrorMessageType } from './types';
import { ArrayTypeLocale } from './locales';
export declare class ArrayType<DataType = any, E = ErrorMessageType> extends MixedType<any[], DataType, E, ArrayTypeLocale> {
    [arrayTypeSchemaSpec]: MixedType<any, DataType, E> | MixedType<any, DataType, E>[];
    private isArrayTypeNested;
    constructor(errorMessage?: E | string);
    rangeLength(minLength: number, maxLength: number, errorMessage?: E | string): this;
    minLength(minLength: number, errorMessage?: E | string): this;
    maxLength(maxLength: number, errorMessage?: E | string): this;
    unrepeatable(errorMessage?: E | string): this;
    of(...types: MixedType<any, DataType, E>[]): this;
}
export default function getArrayType<DataType = any, E = string>(errorMessage?: E): ArrayType<DataType, E>;
