import { z } from 'zod';
import { Optional, TimeStamp } from '@synnaxlabs/x';

export declare const VARIANTS: readonly ["success", "error", "warning", "info", "loading", "disabled", "secondary"];
export declare const variantZ: z.ZodEnum<["success", "error", "warning", "info", "loading", "disabled", "secondary"]>;
export type Variant = z.infer<typeof variantZ>;
export declare const specZ: 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";
    description?: string | undefined;
    data?: Record<string, unknown> | undefined;
}, {
    message: string;
    key: string;
    time: string | number | Number | TimeStamp | {
        value: bigint;
    } | (string & Number) | (string & TimeStamp) | (string & {
        value: bigint;
    }) | (number & Number) | (number & TimeStamp) | (number & {
        value: bigint;
    }) | (Number & string) | (Number & number) | (Number & TimeStamp) | (Number & {
        value: bigint;
    }) | (TimeStamp & string) | (TimeStamp & number) | (TimeStamp & Number) | ({
        value: bigint;
    } & string) | ({
        value: bigint;
    } & number) | ({
        value: bigint;
    } & Number);
    variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
    description?: string | undefined;
    data?: Record<string, unknown> | undefined;
}>;
export type Spec = z.infer<typeof specZ>;
export type CrudeSpec = Optional<Spec, "time" | "key">;
//# sourceMappingURL=types.d.ts.map