import { ComponentOptionsMixin } from 'vue';
import { ComponentProvideOptions } from 'vue';
import { DefineComponent } from 'vue';
import { PublicProps } from 'vue';

declare const __VLS_component: DefineComponent<DialogProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
"update:open": (value: boolean) => any;
cancel: () => any;
}, string, PublicProps, Readonly<DialogProps> & Readonly<{
"onUpdate:open"?: ((value: boolean) => any) | undefined;
onCancel?: (() => any) | undefined;
}>, {
header: string;
disabled: boolean;
open: boolean;
dangerZone: boolean;
description: string;
cancelText: string;
confirmText: string;
onConfirm: (event: Event) => Promise<void> | void;
alert: boolean;
status: StatusSeverity;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
root: HTMLDialogElement;
}, any>;

declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        default?(_: {}): any;
    };
    refs: {
        root: HTMLDialogElement;
    };
    rootEl: any;
};

declare type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;

declare type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;

declare interface DialogProps {
    /**
     * Shows or hides the dialog.
     * Usage: v-model:open="isOpen"
     */
    open?: boolean;
    /**
     * Whether the confirmation button is enabled or not.
     */
    disabled?: boolean;
    /**
     * Is this a dangerous action? Will turn the confirmation button red.
     */
    dangerZone?: boolean;
    /**
     * Header text.
     */
    header?: string;
    /**
     * Description text.
     */
    description?: string;
    /**
     * Cancel button text.
     */
    cancelText?: string;
    /**
     * Confirm button text.
     */
    confirmText?: string;
    /**
     * Callback function when the confirm button is clicked.
     */
    onConfirm?: (event: Event) => Promise<void> | void;
    /**
     * Treats it like an Alert Dialog, with only the confirmation button showing.
     *
     * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Window/alert}
     */
    alert?: boolean;
    /**
     * Adds a top accent border and icon next to the header.
     * This behaves similarly to the Alert component in respect to the levels, icons, and colors
     * passing `error` will treat the dialog the same as `dangerZone`
     */
    status?: StatusSeverity;
}

declare enum StatusSeverities {
    Error = "error",
    Warning = "warning",
    Info = "info",
    Success = "success"
}

declare type StatusSeverity = `${StatusSeverities}`;

export { }
