import * as React from 'react';
import type { ToastProps, ToastRef } from './types';
type ToastTimer = {
    timeout: ReturnType<typeof setTimeout>;
    startTime: number;
    remainingTime: number;
    isPaused: boolean;
};
type ToastStoreState = {
    toasts: ToastProps[];
    toastsById: Map<string | number, ToastProps>;
    toastsCounter: number;
    toastRefs: Record<string | number, React.RefObject<ToastRef | null>>;
    shouldShowOverlay: boolean;
    toastTimers: Record<string | number, ToastTimer>;
    toastHeights: Record<string | number, number>;
    toastHeightsVersion: number;
    isExpanded: boolean;
};
type Subscriber = () => void;
type ToastStoreConfig = {
    autoWiggleOnUpdate?: 'never' | 'toast-change' | 'always';
    visibleToasts?: number;
    duration?: number;
    pauseWhenPageIsHidden?: boolean;
};
declare class ToastStore {
    private state;
    private subscribers;
    private config;
    private hideOverlayTimeout;
    private promiseResolvers;
    private collapseCooldown;
    private collapseCooldownTimeout;
    subscribe: (callback: Subscriber) => () => void;
    getSnapshot: () => ToastStoreState;
    setConfig: (config: ToastStoreConfig) => void;
    private notify;
    private cloneIndex;
    private startTimer;
    private clearTimer;
    pauseTimer: (id: string | number) => void;
    resumeTimer: (id: string | number) => void;
    pauseAllTimers: () => void;
    resumeAllTimers: () => void;
    private handlePromise;
    addToast: (options: Omit<ToastProps, "id" | "numberOfToasts" | "index" | "orderedToastIds"> & {
        id?: string | number;
    }) => string | number;
    dismissToast: (id: string | number | undefined, origin?: "onDismiss" | "onAutoClose") => string | number | undefined;
    private scheduleHideOverlay;
    wiggleToast: (id: string | number) => void;
    getToastRef: (id: string | number) => React.RefObject<ToastRef | null> | undefined;
    setToastHeight: (id: string | number, height: number) => void;
    expand: () => void;
    collapse: () => void;
    toggleExpand: () => void;
}
export declare const toastStore: ToastStore;
export {};
//# sourceMappingURL=toast-store.d.ts.map