import { ICloseable, type ICloseableEvents, type ICloseableProps } from '../../../Behaviors/Closeable';
import { type IOpenable, type IOpenableEvents } from '../../../Behaviors/Openable';
import { CustomElement } from '../../Abstracts/CustomElement';
export interface IOverlayElement {
    open(): Promise<void>;
    close(): Promise<boolean>;
}
/**
 * Represents the `IOverlayElementProps` interface.
 *
 * @public
 */
export interface IOverlayElementProps extends ICloseableProps {
    isOpen: boolean;
    hasBackdrop: boolean;
    pressEscapeToClose: boolean;
    clickOutsideToClose: boolean;
}
declare const OverlayElement_base: import("../../../../Index").ControlBehaviorReturn<import("../../../../Index").ControlBehaviorReturn<typeof CustomElement, ICloseableProps & ICloseableEvents & ICloseable>, IOpenable & IOpenableEvents>;
/**
 * The `{@link OverlayElement}` element.
 *
 * @fires closed - Dispatched when the `OverlayElement` is closed.
 *
 * @public
 * @abstract
 */
export declare abstract class OverlayElement extends OverlayElement_base implements IOverlayElementProps, IOpenable, ICloseable, IOpenableEvents, ICloseableEvents, IOverlayElement {
    private _isOpen;
    private _hasBackdrop;
    private _pressEscapeToClose;
    private _clickOutsideToClose;
    /**
     * @public
     */
    constructor();
    /**
     * Gets or sets the `isOpen` property.
     *
     * @public
     * @attr
     */
    get isOpen(): boolean;
    set isOpen(value: boolean);
    /**
     * Gets or sets the `hasBackdrop` property.
     *
     * @public
     * @attr
     */
    get hasBackdrop(): boolean;
    set hasBackdrop(value: boolean);
    /**
     * Gets or sets the `pressEscapeToClose` property.
     *
     * @public
     * @attr
     */
    get pressEscapeToClose(): boolean;
    set pressEscapeToClose(value: boolean);
    /**
     * Gets or sets the `clickOutsideToClose` property.
     *
     * @public
     * @attr
     */
    get clickOutsideToClose(): boolean;
    set clickOutsideToClose(value: boolean);
    /**
     * @public
     * @override
     */
    connectedCallback(): void;
    /**
     * Opens the `OverlayElement`.
     *
     * @public
     * @override
     */
    open(): Promise<void>;
    /**
     * Closes the `OverlayElement`.
     *
     * @public
     * @override
     */
    close(): Promise<boolean>;
    /**
     * This method is invoked when the `isOpen` property is changed.
     *
     * @protected
     */
    protected onIsOpenChanged(_prev: boolean, newValue: boolean): void;
}
export {};
//# sourceMappingURL=OverlayElement.d.ts.map