import { CSSProperties, Component, QRL, QwikMouseEvent } from "@builder.io/qwik"; export type Position = "top-left" | "top-right" | "bottom-left" | "bottom-right" | "top-center" | "bottom-center"; export type ToastTypes = "normal" | "action" | "success" | "error" | "loading"; export type PromiseT = Promise | (() => Promise); export type PromiseData = ExternalToast & { loading: string | Component; success: string | Component; error: string | Component; finally?: () => void | Promise; }; export interface Toast { id: number | string; title?: string | Component; type?: ToastTypes; icon?: Component; jsx?: Component; closeButton?: boolean; invert?: boolean; description?: Component; duration?: number; delete?: boolean; important?: boolean; action?: { label: string; onClick: (event: QwikMouseEvent) => void; }; cancel?: { label: string; onClick?: () => void; }; onDismiss?: (toast: Toast) => void; onAutoClose?: (toast: Toast) => void; promise?: PromiseT; style?: CSSProperties; class?: string; descriptionClass?: string; } export type ExternalToast = Omit & { id?: number | string; }; export interface Height { height: number; toastId: number | string; } export type ThemeStore = { toasts: Toast[]; toastCounter: number; add: QRL<(this: ThemeStore, value: Toast) => void>; remove: QRL<(this: ThemeStore, toastId: string | number) => void>; create: QRL<(this: ThemeStore, value: ExternalToast & { message?: string | Component; type?: ToastTypes; }) => string | number>; message: QRL<(this: ThemeStore, value: { message: string | Component; data?: ExternalToast; }) => void>; error: QRL<(this: ThemeStore, value: { message: string | Component; data?: ExternalToast; }) => void>; success: QRL<(this: ThemeStore, value: { message: string | Component; data?: ExternalToast; }) => void>; promise: QRL<(this: ThemeStore, promise: PromiseT, data: PromiseData) => void>; }; export declare const ToastContext: import("@builder.io/qwik").ContextId; export declare function useToastContext(): ThemeStore;