import { CSSResultArray, LitElement, PropertyDeclarations } from 'lit-element'; import { TemplateResult } from 'lit-html'; import { DialogHideEvent } from './DialogHideEvent'; import { DialogShowEvent } from './DialogShowEvent'; import { DialogWindow } from './DialogWindow'; declare const Base: typeof LitElement & import("lit-element").Constructor & { inferredProperties: string[]; } & { styles: CSSResultArray; } & import("lit-element").Constructor & import("lit-element").Constructor & { defaultNS: string; }; export declare abstract class Dialog extends Base { /** * Selector of an element that will serve as a mounting point to all dialog windows. * It's `` by default, but you can add your own element with `id="foxy-dialog-windows-host"` * anywhere in the light DOM to render dialogs there. */ static readonly dialogWindowsHost = "#foxy-dialog-windows-host, body"; /** Map of all dialog windows linked to their dialog elements. */ static readonly dialogWindows: WeakMap; /** List of all currently open dialogs. */ static readonly openDialogs: Dialog[]; /** * Instance of this event will be dispatched on a dialog when it finishes entering the screen. * This event does not bubble and can't cross shadow DOM boundary. */ static readonly ShowEvent: typeof DialogShowEvent; /** * Instance of this event will be dispatched on a dialog when it finishes leaving the screen. * This event does not bubble and can't cross shadow DOM boundary. */ static readonly HideEvent: typeof DialogHideEvent; /** @readonly */ static get properties(): PropertyDeclarations; /** @readonly */ static get styles(): CSSResultArray; /** When true, renders Close button in the header. */ closable: boolean; /** When true, renders Save button in the header. */ editable: boolean; /** Header text or a i18next key for it. */ header: string; /** NucleonElement's Rumour sync group. */ group: string; /** When true, centers a dialog on the screen and does not animate the stack under. */ alert: boolean; /** When true, dialog window will a larger maximum width. */ wide: boolean; private __returnFocusTo?; private __handleKeyDown; private __connected; private __visible; /** True if dialog is mounted and has finished entering the screen. */ get open(): boolean; set open(newValue: boolean); /** @readonly */ connectedCallback(): void; /** @readonly */ disconnectedCallback(): void; /** @readonly */ createRenderRoot(): Element | ShadowRoot; /** @readonly */ render(content?: () => TemplateResult): TemplateResult; updated(changes: Map): void; /** * Hides the dialog. Returns a promise that resolves when the dialog * finishes leaving the screen. * * @param cancelled Set this to `true` if closing an editable dialog without saving changes. */ hide(cancelled?: boolean): Promise; /** * Shows the dialog. Returns a promise that resolves when the dialog * finishes entering the screen. * * @param returnFocusTo If provided, the dialog will call `.focus()` on that element once it's closed. */ show(returnFocusTo?: HTMLElement): Promise; /** Alias for `dialog.hide(false)`. */ save(): Promise; private __setOpenDialogs; private __setConnected; } export {};