import { Schema, SchemaHandlers } from '../schema.js';
import { DeprecatedResult, ExpectedResult, ForwardResult, RedirectResult, Utils, ValidateResult } from '../types.js';
interface ArraySchemaParameters<$ValueSchema extends Schema<any>> extends SchemaHandlers<Array<$ValueSchema['_valueType']>> {
    name?: string;
    valueSchema: $ValueSchema;
}
export declare class ArraySchema<$ValueSchema extends Schema<any>> extends Schema<Array<$ValueSchema['_valueType']>, ArraySchemaParameters<$ValueSchema>> {
    private _valueSchema;
    constructor({ valueSchema, name, ...handlers }: ArraySchemaParameters<$ValueSchema>);
    expected(utils: Utils): ExpectedResult;
    validate(value: unknown, utils: Utils): ValidateResult;
    deprecated(value: this['_valueType'], utils: Utils): DeprecatedResult<this['_valueType']>;
    forward(value: this['_valueType'], utils: Utils): ForwardResult<this['_valueType']>;
    redirect(value: this['_valueType'], utils: Utils): RedirectResult<this['_valueType']>;
    overlap(currentValue: this['_valueType'], newValue: this['_valueType']): this['_valueType'];
}
export {};
