import { status as xstatus, TimeSpan } from '@synnaxlabs/x';
import { PropsWithChildren } from 'react';
import { status } from '../aether';
export interface Adder extends status.Adder {
}
declare const useAdder: () => Adder;
export { useAdder };
export interface AggregatorProps extends PropsWithChildren {
    maxHistory?: number;
}
export declare const Aggregator: ({ children, maxHistory }: AggregatorProps) => import("react/jsx-runtime").JSX.Element;
export interface ErrorHandler extends status.ErrorHandler {
}
export interface AsyncErrorHandler extends status.AsyncErrorHandler {
}
export declare const useErrorHandler: () => ErrorHandler;
export declare const useAsyncErrorHandler: () => AsyncErrorHandler;
export type NotificationSpec<Details = never> = xstatus.Status<Details> & {
    count: number;
};
export interface UseNotificationsReturn<Details = never> {
    statuses: NotificationSpec<Details>[];
    silence: (key: string) => void;
}
interface UseNotificationsProps {
    expiration?: TimeSpan;
    poll?: TimeSpan;
}
export declare const useNotifications: ({ expiration, poll, }?: UseNotificationsProps) => UseNotificationsReturn;
//# sourceMappingURL=Aggregator.d.ts.map