/// <reference types="node" />
import { ReactElement, ReactNode } from 'react';
import { Notification } from '@goatim/client';
import { WrapperProps } from '@cezembre/fronts';
export interface NotificationModalState extends WrapperProps {
    id: string;
    notification: Notification;
    hidden: boolean;
    timeout?: NodeJS.Timeout | null;
    onDismiss?: () => unknown;
}
export interface PushNotificationOptions extends WrapperProps {
    timeout?: number;
    onDismiss?: () => unknown;
}
export interface NotificationsContextState {
    notificationsModals: NotificationModalState[];
    popNotification(id: string, dismissed?: boolean): void;
    pushNotification(notification: Notification, options?: PushNotificationOptions): void;
}
export declare function useNotificationsContext(): NotificationsContextState;
export interface NotificationsContextProps {
    children: ReactNode | ReactNode[];
}
export declare function NotificationsContext({ children }: NotificationsContextProps): ReactElement;
