import { ArrayTypedSchema } from '../core/ArrayTypedSchema'; import { ObjectPropertiesSchema } from '../types/SchemaMap'; export declare class ArraySchema = ObjectPropertiesSchema> extends ArrayTypedSchema { protected message: string; protected rule: (value: any[]) => boolean; protected clone(): ArraySchema; /** * Checks if is empty * @param message @option Overrides default message */ empty(message?: string): ObjectPropertiesSchema; /** * Checks if has a minimal number of items in array * @param minValue * @param message @option Overrides default message */ min(minValue: number, message?: string): ObjectPropertiesSchema; /** * Checks if has a maximal number of elements * @param maxValue * @param message @option Overrides default message */ max(maxValue: number, message?: string): ObjectPropertiesSchema; /** * Checks if array has "length" number of elements * @param length * @param message @option Overrides default message */ length(length: number, message?: string): ObjectPropertiesSchema; /** * Checks if has only unique elements * * Note: This only check basic values, like numbers, string, boolean. * For object arrays and more complex values use {@link ArraySchema#uniqueBy} * @param message @option Overrides default message */ unique(message?: string): ObjectPropertiesSchema; /** * Checks if has only unique elements by key * @param message @option Overrides default message */ uniqueBy(key: keyof Input[number] | ((val: Input[number]) => any), message?: string): ObjectPropertiesSchema; } export declare const array: = ObjectPropertiesSchema>(schemas: S, message?: string) => ArraySchema, Final, S>;