/**
 * Dialog options.
 */
interface DialogOptions<Keys extends string> {
    /**
     * Element to attach the dialgo to.
     */
    container: HTMLElement;
    /**
     * Body content string. Can be HTML string.
     */
    body?: string;
    /**
     * Title string to render. Can be HTML string.
     */
    title?: string;
    /**
     * Accessible dialog title text,
     * especially useful for voice-over features when the title field is an image.
     */
    titleText?: string;
    /**
     * "data-testid" attribute for testing purposes.
     */
    dataTestId?: string;
    /**
     * Use the lang field to set "lang" attribute on the dialog if that should be different from the parent page.
     */
    lang?: string;
    /**
     * Accessbile text of dismiss (X) button,
     * especially useful for voice-over features when the title field is an image.
     */
    dismissButtonText?: string;
    /**
     * Buttons to display at the bottom of the dialog.
     */
    buttons?: DialogButton<Keys>[];
}
/**
 * Dialog button.
 */
interface DialogButton<Key extends string> {
    /**
     * Button text.
     */
    text: string;
    /**
     * Value returned by the {@link showDialog} function after the button is clicked.
     */
    key: Key;
    /**
     * Whether to apply "secondary" styles on the button.
     */
    isSecondary?: boolean;
}
type DismissKey = "dismiss";
export declare function showDialog<Keys extends string>(options: DialogOptions<Keys>): Promise<Keys | DismissKey>;
export {};
//# sourceMappingURL=dialog.d.ts.map