export type NotificationConfig = {
    id?: string;
    message?: string;
    render?: (isExiting: boolean, onDismiss: (reason?: "user" | "auto") => void, startTime?: number) => React.ReactNode;
    duration?: number;
    actionLabel?: string;
    onAction?: () => void;
    onDismiss?: (reason?: "user" | "auto") => void;
    variant?: "default" | "info" | "warning";
};
export type StreamNotification = NotificationConfig & {
    id: string;
    visible: boolean;
    shouldDismiss?: boolean;
    dismissReason?: "user" | "auto";
    startTime?: number;
};
type Listener = (notifications: StreamNotification[]) => void;
declare class StreamNotificationManager {
    private notifications;
    private listeners;
    private dismissTimers;
    show(config: NotificationConfig): void;
    requestDismiss(id: string, reason?: "user" | "auto"): void;
    hide(id: string, reason?: "user" | "auto"): void;
    getAll(): StreamNotification[];
    subscribe(listener: Listener): () => void;
    private notifyListeners;
}
export declare const streamNotificationManager: StreamNotificationManager;
export declare const streamNotification: {
    show: (config: NotificationConfig) => void;
    hide: (id: string) => void;
};
export {};
//# sourceMappingURL=stream-notification-manager.d.ts.map