import type { Plugin, VNode } from 'vue';
import type { EventBus } from '@grozav/utils';
export type ToastPosition = 'top-left' | 'top' | 'top-right' | 'right' | 'bottom-right' | 'bottom' | 'bottom-left' | 'left' | string;
export interface ToastOptions {
    id: string;
    title: string | VNode | VNode[];
    message: string | VNode | VNode[];
    icon: string | VNode | VNode[];
    position: ToastPosition;
    duration: number;
    dismissible?: boolean;
    showProgress?: boolean;
    color: 'light' | 'dark' | 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger' | string;
    size: 'sm' | 'md' | 'lg';
}
export interface InklineToastOptions {
    toast?: Partial<Omit<ToastOptions, 'id'>>;
}
export interface ToastService {
    show: (options: Partial<ToastOptions>) => void;
    hide: (options: {
        id: string;
    }) => void;
    hideAll: () => void;
}
export declare const toastEventBus: EventBus;
export declare const createToastService: () => ToastService;
export declare const ToastPlugin: Plugin;
