import { Icons } from 'open-icon';
import { ToastPosition, ToastType } from './Toast.model';
type IconValue = (typeof Icons)[keyof typeof Icons];
export interface ToastOptions {
    message: string;
    title?: string;
    icon?: IconValue;
    duration?: number;
    position?: ToastPosition;
    type?: ToastType;
    dismissible?: boolean;
    onClose?: () => void;
    id?: string;
    closable?: boolean;
    action?: {
        label: string;
        handler: () => void;
    };
}
export interface ToastInstance {
    id: string;
    message: string;
    title: string;
    icon: IconValue | null;
    duration: number;
    position: ToastPosition;
    type: ToastType;
    onClose?: () => void;
    dismissible: boolean;
    openedTime: number;
    state: {
        closing: boolean;
    };
}
declare const useToastService: () => {
    toasts: import('vue').Ref<{
        id: string;
        message: string;
        title: string;
        icon: IconValue | null;
        duration: number;
        position: ToastPosition;
        type: ToastType;
        onClose?: (() => void) | undefined;
        dismissible: boolean;
        openedTime: number;
        state: {
            closing: boolean;
        };
    }[], ToastInstance[] | {
        id: string;
        message: string;
        title: string;
        icon: IconValue | null;
        duration: number;
        position: ToastPosition;
        type: ToastType;
        onClose?: (() => void) | undefined;
        dismissible: boolean;
        openedTime: number;
        state: {
            closing: boolean;
        };
    }[]>;
    show: (opts: ToastOptions) => string;
    hide: (id: string) => void;
    hideAll: () => void;
    error: (message: string, options?: Omit<ToastOptions, "message" | "type">) => string;
    success: (message: string, options?: Omit<ToastOptions, "message" | "type">) => string;
    warning: (message: string, options?: Omit<ToastOptions, "message" | "type">) => string;
    info: (message: string, options?: Omit<ToastOptions, "message" | "type">) => string;
};
export declare const toastService: {
    toasts: import('vue').Ref<{
        id: string;
        message: string;
        title: string;
        icon: IconValue | null;
        duration: number;
        position: ToastPosition;
        type: ToastType;
        onClose?: (() => void) | undefined;
        dismissible: boolean;
        openedTime: number;
        state: {
            closing: boolean;
        };
    }[], ToastInstance[] | {
        id: string;
        message: string;
        title: string;
        icon: IconValue | null;
        duration: number;
        position: ToastPosition;
        type: ToastType;
        onClose?: (() => void) | undefined;
        dismissible: boolean;
        openedTime: number;
        state: {
            closing: boolean;
        };
    }[]>;
    show: (opts: ToastOptions) => string;
    hide: (id: string) => void;
    hideAll: () => void;
    error: (message: string, options?: Omit<ToastOptions, "message" | "type">) => string;
    success: (message: string, options?: Omit<ToastOptions, "message" | "type">) => string;
    warning: (message: string, options?: Omit<ToastOptions, "message" | "type">) => string;
    info: (message: string, options?: Omit<ToastOptions, "message" | "type">) => string;
};
export type ToastService = ReturnType<typeof useToastService>;
export {};
