/// <reference types="node" />
import { BaseSelfControl } from './BaseSelfControl';
import { IObject, IObjectJson } from './SelfObject';
export declare class SelfObjectArray<V extends IObject, J extends IObjectJson> extends BaseSelfControl<Array<V>, Array<J>, string, HTMLInputElement> {
    #private;
    private _deserialize;
    multiItemId?: number;
    multiItemTimer?: NodeJS.Timeout;
    private validateNormal;
    private validateRequired;
    isValueEmpty: () => boolean;
    isValueNotEmpty: () => boolean;
    validate: () => void;
    cleaningClassInitializer: () => void;
    refreshHasChange: () => void;
    restartDefaultValue: () => void;
    get value(): Array<V>;
    set value(value: Array<V>);
    setValue: (value: Array<V>) => void;
    get ids(): number[];
    deserialize: (jsons: Array<J>) => void;
    useAsFilter: boolean;
    timer?: NodeJS.Timeout | null;
    triggerChangeFilters?: () => void;
    constructor(_deserialize: (json?: J) => V, value: Array<V>);
    static empty<V extends IObject, J extends IObjectJson>(deserialize: (json?: J) => V): SelfObjectArray<V, J>;
}
