import { TimeStamp } from '@synnaxlabs/x';
import { z } from 'zod';
import { aether } from '../../aether/aether';
import { CrudeSpec } from './types';
export declare const aggregatorStateZ: z.ZodObject<{
    statuses: z.ZodArray<z.ZodObject<{
        key: z.ZodString;
        variant: z.ZodEnum<["success", "error", "warning", "info", "loading", "disabled", "secondary"]>;
        message: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        time: z.ZodUnion<[z.ZodEffects<z.ZodObject<{
            value: z.ZodBigInt;
        }, "strip", z.ZodTypeAny, {
            value: bigint;
        }, {
            value: bigint;
        }>, TimeStamp, {
            value: bigint;
        }>, z.ZodEffects<z.ZodString, TimeStamp, string>, z.ZodEffects<z.ZodType<Number, z.ZodTypeDef, Number>, TimeStamp, Number>, z.ZodEffects<z.ZodNumber, TimeStamp, number>, z.ZodType<TimeStamp, z.ZodTypeDef, TimeStamp>]>;
        data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, "strip", z.ZodTypeAny, {
        message: string;
        key: string;
        time: TimeStamp;
        variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
        data?: Record<string, unknown> | undefined;
        description?: string | undefined;
    }, {
        message: string;
        key: string;
        time: string | number | Number | TimeStamp | {
            value: bigint;
        };
        variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
        data?: Record<string, unknown> | undefined;
        description?: string | undefined;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    statuses: {
        message: string;
        key: string;
        time: TimeStamp;
        variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
        data?: Record<string, unknown> | undefined;
        description?: string | undefined;
    }[];
}, {
    statuses: {
        message: string;
        key: string;
        time: string | number | Number | TimeStamp | {
            value: bigint;
        };
        variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
        data?: Record<string, unknown> | undefined;
        description?: string | undefined;
    }[];
}>;
export type Aggregate = (spec: CrudeSpec) => void;
export declare class Aggregator extends aether.Composite<typeof aggregatorStateZ> {
    static readonly TYPE: string;
    schema: z.ZodObject<{
        statuses: z.ZodArray<z.ZodObject<{
            key: z.ZodString;
            variant: z.ZodEnum<["success", "error", "warning", "info", "loading", "disabled", "secondary"]>;
            message: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
            time: z.ZodUnion<[z.ZodEffects<z.ZodObject<{
                value: z.ZodBigInt;
            }, "strip", z.ZodTypeAny, {
                value: bigint;
            }, {
                value: bigint;
            }>, TimeStamp, {
                value: bigint;
            }>, z.ZodEffects<z.ZodString, TimeStamp, string>, z.ZodEffects<z.ZodType<Number, z.ZodTypeDef, Number>, TimeStamp, Number>, z.ZodEffects<z.ZodNumber, TimeStamp, number>, z.ZodType<TimeStamp, z.ZodTypeDef, TimeStamp>]>;
            data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        }, "strip", z.ZodTypeAny, {
            message: string;
            key: string;
            time: TimeStamp;
            variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
            data?: Record<string, unknown> | undefined;
            description?: string | undefined;
        }, {
            message: string;
            key: string;
            time: string | number | Number | TimeStamp | {
                value: bigint;
            };
            variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
            data?: Record<string, unknown> | undefined;
            description?: string | undefined;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        statuses: {
            message: string;
            key: string;
            time: TimeStamp;
            variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
            data?: Record<string, unknown> | undefined;
            description?: string | undefined;
        }[];
    }, {
        statuses: {
            message: string;
            key: string;
            time: string | number | Number | TimeStamp | {
                value: bigint;
            };
            variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
            data?: Record<string, unknown> | undefined;
            description?: string | undefined;
        }[];
    }>;
    afterUpdate(): Promise<void>;
    add(spec: CrudeSpec): void;
}
export declare const useAggregate: (ctx: aether.Context) => Aggregate;
export declare const useOptionalAggregate: (ctx: aether.Context) => Aggregate;
export declare const REGISTRY: aether.ComponentRegistry;
//# sourceMappingURL=aggregator.d.ts.map