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