import Form from "./Form";
/**
 * @description Класс для работы с зависимыми элементами формы. Основная задача - поддержание целостности.
 * При добавлении элемента устанавливается значение родителя, а также добавление в массив.
 * При удалении значение родителя сбрасывается.
 * */
export default class DependencyQueue<T extends (DependencyItem & Record<string, any>)> {
    private array;
    private readonly form;
    constructor(form: Form);
    add(object: T): void;
    remove(object: T): void;
    find(expression: (elem: T, index: number) => boolean): T | undefined;
    forEach(callback: (elem: T) => void): void;
    get length(): number;
    includes(elem: T): boolean;
    reduce<U>(callback: (acc: U, elem: T) => U, defaultAcc: U): U;
}
export interface DependencyItem {
    parent?: Form | undefined;
    name?: string;
    dispatchEvent?: any;
}
