import { EventEmitter, ComponentInterface } from '../../stencil-public-runtime';
import { StorageMethods } from '../../utils/store/component-store';
/**
 * Dialogs, sometimes called "modals", appear above the page and require the user's immediate attention.
 *
 * @version 1.0.0
 * @status stable
 *
 * @part base - The component’s base wrapper
 * @part overlay - The overlay that covers the screen behind the dialog
 * @part panel - The dialog’s panel (where the dialog and its content are rendered)
 * @part header - The dialog’s header. This element wraps the title and header actions
 * @part title - The dialog’s title
 * @part close-button - The `<nano-icon-button>` close button
 * @part close-button__base - The close button's exported `base` part
 * @part body - dilog body / content
 * @part footer - dialog footer bar
 *
 * @slot label - The dialog's label. Alternatively, you can use the label prop.
 * @slot footer - The dialog's footer, usually one or more buttons representing various options.
 * @slot - The dialog's content.
 */
export declare class Dialog implements ComponentInterface {
    private componentId;
    private modal;
    private willShow;
    private willHide;
    private originalTrigger;
    private overlay;
    private dialog;
    private slotCtrl;
    get panel(): HTMLElement;
    set panel(p: HTMLElement);
    private _panel;
    host: HTMLNanoDialogElement;
    noDismiss: boolean;
    hidden: boolean;
    /** Show a colour ribbon at the top of the modal */
    showRibbon: boolean;
    /** Indicates whether or not the dialog is open. You can use this in lieu of the show/hide methods. */
    open: boolean;
    handleOpenChange(): void;
    /** The dialog's label as displayed in the header. You should always include a relevant
     * label even when using `no-header`, as it is required for proper accessibility. */
    label: string;
    /** Set to true to disable the header. This will also remove the default close button,
     * so please ensure you  provide an easy, accessible way for users to dismiss the dialog. */
    noHeader: boolean;
    /** An alternative to `preventDefault()` on the `nanoRequestClose` event. This will hide the close button and disable clicks on the overlay or presses the `Escape` key  */
    noUserDismiss: boolean;
    /** Store search queries (against this ID) to the component store. Use in conjunction with storeMethod */
    storeId?: string;
    /** The method of storage. Either session storage, url hash (after the '#') or url query (after the '?'). */
    storeMethod: StorageMethods;
    /** Relocate the dialog to the root of the DOM. Useful for elements bound via css `transform: ...` */
    hoist: boolean;
    handleHoistChange(): void;
    /** Emitted when the dialog opens. Calling `event.preventDefault()` will prevent it from being opened. */
    nanoShow: EventEmitter;
    /** Emitted after the dialog opens and all transitions are complete. */
    nanoAfterShow: EventEmitter;
    /** Emitted when the dialog closes. Calling `event.preventDefault()` will prevent it from being closed. */
    nanoHide: EventEmitter;
    /** Emitted after the dialog closes and all transitions are complete. */
    nanoAfterHide: EventEmitter;
    /** Emitted when the dialog opens and the panel gains focus. Calling `event.preventDefault()` will prevent
     * focus and allow you to set it on a different element in the dialog, such as an input or button. */
    nanoInitialFocus: EventEmitter;
    /** Emitted when the user clicks the close button, clicks the overlay, or presses the `Escape` key. Calling `event.preventDefault()` will prevent the dialog from closing. */
    nanoRequestClose: EventEmitter;
    /** Shows the dialog */
    show(): Promise<void>;
    /** Hides the dialog */
    hide(): Promise<void>;
    private handleKeyDown;
    private requestClose;
    private handleTransitionEnd;
    private stopVideos;
    connectedCallback(): void;
    componentWillLoad(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    render(): any;
}
