import FormEvent from "./FormEvent";
import { FormAvailability } from "../types";
export default class AvailabilityEvent extends FormEvent {
    sourceAvailabilities: FormAvailability;
    oldAvailabilities: FormAvailability;
    newAvailability: boolean;
    oldAvailability: boolean;
    constructor(sourceAvailabilities: FormAvailability, oldAvailabilities: FormAvailability, newAvailability?: boolean, oldAvailability?: boolean);
    /**
     * @description Статическая функция, формирующая новые availability объект(event), но фильтруя сравнения по имени.
     * Используется для передачи только части объекта изменений в дочерний элемент.
     * */
    static restoreByName(event: AvailabilityEvent, name: string): AvailabilityEvent;
    /**
     * @description По переданному availabilities для нужного поля получает значение доступности. Третий параметр -
     * текущая доступность для целевого объекта.
     * */
    static GetAvailability(state: FormAvailability, name: string, defaultAvailability?: boolean): boolean;
    /**
     * @description Более краткая форма для доступности. Используется для одного поля. Получает изменение доступности.
     * [Доступно ли поле сейчас, было ли оно доступно ранее]
     * */
    static GetFieldAvailability(event: AvailabilityEvent, fieldName: string): [boolean, boolean];
}
