import { TimeSpan } from '@synnaxlabs/x';
import { PropsWithChildren, useContext as reactUseContext } from 'react';
import { z } from 'zod';
import { status } from './aether';
interface ContextValue extends z.infer<typeof status.aggregatorStateZ> {
    add: (status: status.CrudeSpec) => void;
}
export declare const useContext: typeof reactUseContext;
export interface AggregatorProps extends PropsWithChildren {
    maxHistory?: number;
}
export declare const Aggregator: import('react').FC<AggregatorProps & {
    aetherKey?: string;
}>;
export declare const useAggregator: () => ContextValue["add"];
export interface UseNotificationsProps {
    expiration?: TimeSpan;
}
export interface NotificationSpec extends status.Spec {
    count: number;
}
export interface UseNotificationsReturn {
    statuses: NotificationSpec[];
    silence: (key: string) => void;
}
export declare const useNotifications: (props?: UseNotificationsProps) => UseNotificationsReturn;
export {};
//# sourceMappingURL=Aggregator.d.ts.map