import { DisplayHint, DisplayParent, DisplayViewId, Event, FileChooser, Form, FormValidator, GroupBox, MessageBox, PropertyChangeEvent, Status, ValidationResult, WidgetEventMap } from '../index';
export interface FormRevealInvalidFieldEvent<F extends Form = Form> extends Event<F> {
    validationResult: ValidationResult;
}
export interface FormMoveEvent<F extends Form = Form> extends Event<F> {
    left: number;
    top: number;
}
export interface FormErrorEvent<F extends Form = Form> extends Event<F> {
    phase: 'load' | 'save' | 'postLoad';
    /**
     * Typically an Error but may be anything as everything can be thrown in JavaScript.
     */
    error: any;
}
export interface FormInvalidEvent<F extends Form = Form> extends Event<F> {
    status: Status;
}
export interface FormEventMap extends WidgetEventMap {
    'abort': Event<Form>;
    'close': Event<Form>;
    'load': Event<Form>;
    'move': FormMoveEvent;
    'postLoad': Event<Form>;
    'reset': Event<Form>;
    'error': FormErrorEvent;
    'invalid': FormInvalidEvent;
    'revealInvalidField': FormRevealInvalidFieldEvent;
    'save': Event<Form>;
    'propertyChange:askIfNeedSave': PropertyChangeEvent<boolean>;
    'propertyChange:closable': PropertyChangeEvent<boolean>;
    'propertyChange:data': PropertyChangeEvent<any>;
    'propertyChange:dialogs': PropertyChangeEvent<Form[]>;
    'propertyChange:displayHint': PropertyChangeEvent<DisplayHint>;
    'propertyChange:displayParent': PropertyChangeEvent<DisplayParent>;
    'propertyChange:displayViewId': PropertyChangeEvent<DisplayViewId>;
    'propertyChange:exclusiveKey': PropertyChangeEvent<() => any>;
    'propertyChange:fileChoosers': PropertyChangeEvent<FileChooser[]>;
    'propertyChange:formLoading': PropertyChangeEvent<boolean>;
    'propertyChange:headerVisible': PropertyChangeEvent<boolean>;
    'propertyChange:iconId': PropertyChangeEvent<string>;
    'propertyChange:maximized': PropertyChangeEvent<boolean>;
    'propertyChange:messageBoxes': PropertyChangeEvent<MessageBox[]>;
    'propertyChange:modal': PropertyChangeEvent<boolean>;
    'propertyChange:movable': PropertyChangeEvent<boolean>;
    'propertyChange:resizable': PropertyChangeEvent<boolean>;
    'propertyChange:rootGroupBox': PropertyChangeEvent<GroupBox>;
    'propertyChange:saveNeeded': PropertyChangeEvent<boolean>;
    'propertyChange:saveNeededVisible': PropertyChangeEvent<boolean>;
    'propertyChange:showOnOpen': PropertyChangeEvent<boolean>;
    'propertyChange:status': PropertyChangeEvent<Status>;
    'propertyChange:subTitle': PropertyChangeEvent<string>;
    'propertyChange:title': PropertyChangeEvent<string>;
    'propertyChange:validators': PropertyChangeEvent<FormValidator[]>;
    'propertyChange:views': PropertyChangeEvent<Form[]>;
}
//# sourceMappingURL=FormEventMap.d.ts.map