import type { Component, PropType } from "vue";
import type { MaybePromise } from "@byloth/core";
import { Alert } from "../models/index.js";
import type { Duration } from "../types/index.js";
import type { AlertOptions } from "../types/alert/index.js";
type AnyContextResolver = (result?: MaybePromise<any>) => void;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        default?(_: {
            alert: Alert<any, any>;
            customComponent: Component | undefined;
            isOpen: boolean;
            queue: number;
            resolve: AnyContextResolver;
            reject: import("@byloth/core").PromiseRejecter;
        }): any;
    };
    refs: {};
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    is: {
        default: string;
        type: PropType<string | Component>;
    };
    filter: {
        default: () => boolean;
        type: PropType<(options: AlertOptions<unknown>) => boolean>;
    };
    transitionDuration: {
        default: () => number | Duration;
        type: PropType<number | Duration>;
        validator: (value: unknown) => boolean;
    };
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    opening: (alert: Alert<unknown, Record<string, unknown>>) => void;
    opened: (alert: Alert<unknown, Record<string, unknown>>) => void;
    closing: (alert: Alert<unknown, Record<string, unknown>>) => void;
    closed: (alert: Alert<unknown, Record<string, unknown>>) => void;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    is: {
        default: string;
        type: PropType<string | Component>;
    };
    filter: {
        default: () => boolean;
        type: PropType<(options: AlertOptions<unknown>) => boolean>;
    };
    transitionDuration: {
        default: () => number | Duration;
        type: PropType<number | Duration>;
        validator: (value: unknown) => boolean;
    };
}>> & Readonly<{
    onOpening?: ((alert: Alert<unknown, Record<string, unknown>>) => any) | undefined;
    onOpened?: ((alert: Alert<unknown, Record<string, unknown>>) => any) | undefined;
    onClosing?: ((alert: Alert<unknown, Record<string, unknown>>) => any) | undefined;
    onClosed?: ((alert: Alert<unknown, Record<string, unknown>>) => any) | undefined;
}>, {
    filter: (options: AlertOptions<unknown>) => boolean;
    transitionDuration: number | Duration;
    is: string | Component;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
