import { IModelType, IModelParseContext, IModelTypeComposite, IModelTypeEntry } from "./model.api"; import { ModelTypeConstrainable, ModelConstraints, ModelTypeConstraintOptional } from "./model.base"; export declare class ModelTypeArray extends ModelTypeConstrainable implements IModelTypeComposite { constructor(elementType: IModelType, name?: string, constraints?: ModelConstraints); asCompositeType(): IModelTypeComposite | undefined; protected _clone(constraints: ModelConstraints): this; parse(ctx: IModelParseContext): T[]; validate(ctx: IModelParseContext): void; unparse(val: T[]): any; create(): T[]; createEmpty(): T[]; get items(): IModelTypeEntry[]; findItem(name: string | number): IModelTypeEntry; itemType(): IModelType; slice(): this; possibleValuesForContextData(name: string | number, data: any): any[]; protected _kind(): string; private _elementType; } export interface IArraySizeConstraintOptions { minLength: number; maxLength: number; } export declare class ModelTypeArraySizeConstraint extends ModelTypeConstraintOptional { constructor(options: IArraySizeConstraintOptions); minLength(): number | null; maxLength(): number | null; _id(): string; checkAndAdjustValue(v: T[], c: IModelParseContext): T[]; private _settings; } export declare class ModelTypeArrayUniqueElementsConstraint extends ModelTypeConstraintOptional { constructor(); _id(): string; checkAndAdjustValue(v: T[], c: IModelParseContext): T[]; }