/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { DialogPositionType, IDialogMoveStartEventData, IDialogMoveEventData, DialogStateCallback } from './dialog-constants';
import { BaseComponent, IBaseComponent } from '../core/base/base-component';
export interface IDialogComponent extends IBaseComponent {
    backdropClose: boolean;
    escapeClose: boolean;
    open: boolean;
    fullscreen: boolean;
    openCallback: DialogStateCallback;
    closeCallback: DialogStateCallback;
    beforeCloseCallback: () => boolean | Promise<boolean>;
    positionType: DialogPositionType;
    positionX: number | string | null | undefined;
    positionY: number | string | null | undefined;
    moveable: boolean;
    moveTarget: string;
    initializeMoveTarget(): void;
    resetPosition(): void;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-dialog': IDialogComponent;
    }
    interface HTMLElementEventMap {
        'forge-dialog-before-close': CustomEvent<void>;
        'forge-dialog-open': CustomEvent<void>;
        'forge-dialog-close': CustomEvent<void>;
        'forge-dialog-ready': CustomEvent<void>;
        'forge-dialog-move-start': CustomEvent<IDialogMoveStartEventData>;
        'forge-dialog-move': CustomEvent<IDialogMoveEventData>;
        'forge-dialog-move-end': CustomEvent<void>;
    }
}
/**
 * The web component class behind the `<forge-dialog>` custom element.
 *
 * @tag forge-dialog
 */
export declare class DialogComponent extends BaseComponent implements IDialogComponent {
    static get observedAttributes(): string[];
    private _foundation;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    /** Controls whether clicking the backdrop closes the dialog or not. Default is true. */
    backdropClose: boolean;
    /** Controls whether pressing the escape key closes the dialog or not. Default is true. */
    escapeClose: boolean;
    /** Controls whether the dialog is open or not. Default is false. */
    open: boolean;
    /** Controls whether the dialog is full screen or not. Default is false. */
    fullscreen: boolean;
    /** The function to call when the dialog wants to open. */
    openCallback: DialogStateCallback;
    /** the function to call when the dialog wants to close. */
    closeCallback: DialogStateCallback;
    /** the function to call when the dialog wants to close. */
    beforeCloseCallback: () => boolean | Promise<boolean>;
    /** Gets/sets the position type when using custom positioning values. Default is 'absolute'. */
    positionType: DialogPositionType;
    /** Controls the horizontal position of the dialog surface. */
    positionX: number | string | null | undefined;
    /** Controls the vertical position of the dialog surface. */
    positionY: number | string | null | undefined;
    /** Gets/sets whether the dialog surface can be moved or not. */
    moveable: boolean;
    /** Gets/sets the selector used to target the element that is used as the drag target. */
    moveTarget: string;
    initializeMoveTarget(): void;
    resetPosition(): void;
}
