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>;
    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(type: MixedType<any, DataType, E>): this;
}
export default function getArrayType<DataType = any, E = string>(errorMessage?: E): ArrayType<DataType, E>;
