import { Ensure } from '../helpers/index'; import type { SchemaOptions, TSchema } from '../schema/index'; import type { Static } from '../static/index'; import { Kind } from '../symbols/index'; export interface ArrayOptions extends SchemaOptions { /** The minimum number of items in this array */ minItems?: number; /** The maximum number of items in this array */ maxItems?: number; /** Should this schema contain unique items */ uniqueItems?: boolean; /** A schema for which some elements should match */ contains?: TSchema; /** A minimum number of contains schema matches */ minContains?: number; /** A maximum number of contains schema matches */ maxContains?: number; } type ArrayStatic = Ensure[]>; export interface TArray extends TSchema, ArrayOptions { [Kind]: 'Array'; static: ArrayStatic; type: 'array'; items: T; } /** `[Json]` Creates an Array type */ export declare function Array(items: Type, options?: ArrayOptions): TArray; export {};