import { Destructor } from '@synnaxlabs/x';
import { z } from 'zod';
import { aether } from '../../../aether/aether';
import { telem } from '../../aether';
export declare const chipStateZ: z.ZodObject<{
    triggered: z.ZodBoolean;
    status: 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;
        }>, import('@synnaxlabs/client').TimeStamp, {
            value: bigint;
        }>, z.ZodEffects<z.ZodString, import('@synnaxlabs/client').TimeStamp, string>, z.ZodEffects<z.ZodType<Number, z.ZodTypeDef, Number>, import('@synnaxlabs/client').TimeStamp, Number>, z.ZodEffects<z.ZodNumber, import('@synnaxlabs/client').TimeStamp, number>, z.ZodType<import('@synnaxlabs/client').TimeStamp, z.ZodTypeDef, import('@synnaxlabs/client').TimeStamp>]>;
        data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, "strip", z.ZodTypeAny, {
        message: string;
        key: string;
        time: import('@synnaxlabs/client').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 | import('@synnaxlabs/client').TimeStamp | {
            value: bigint;
        };
        variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
        data?: Record<string, unknown> | undefined;
        description?: string | undefined;
    }>;
    sink: z.ZodDefault<z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
        type: z.ZodString;
        variant: z.ZodEnum<["source", "sink", "source-transformer", "sink-transformer"]>;
        valueType: z.ZodString;
        props: z.ZodAny;
        transfer: z.ZodOptional<z.ZodArray<z.ZodType<ArrayBuffer, z.ZodTypeDef, ArrayBuffer>, "many">>;
    }, {
        variant: z.ZodLiteral<"sink">;
    }>, {
        valueType: z.ZodLiteral<"boolean">;
    }>, "strip", z.ZodTypeAny, {
        type: string;
        valueType: "boolean";
        variant: "sink";
        props?: any;
        transfer?: ArrayBuffer[] | undefined;
    }, {
        type: string;
        valueType: "boolean";
        variant: "sink";
        props?: any;
        transfer?: ArrayBuffer[] | undefined;
    }>>>;
    source: z.ZodDefault<z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
        type: z.ZodString;
        variant: z.ZodEnum<["source", "sink", "source-transformer", "sink-transformer"]>;
        valueType: z.ZodString;
        props: z.ZodAny;
        transfer: z.ZodOptional<z.ZodArray<z.ZodType<ArrayBuffer, z.ZodTypeDef, ArrayBuffer>, "many">>;
    }, {
        variant: z.ZodLiteral<"source">;
    }>, {
        valueType: z.ZodLiteral<"status">;
    }>, "strip", z.ZodTypeAny, {
        type: string;
        valueType: "status";
        variant: "source";
        props?: any;
        transfer?: ArrayBuffer[] | undefined;
    }, {
        type: string;
        valueType: "status";
        variant: "source";
        props?: any;
        transfer?: ArrayBuffer[] | undefined;
    }>>>;
}, "strip", z.ZodTypeAny, {
    status: {
        message: string;
        key: string;
        time: import('@synnaxlabs/client').TimeStamp;
        variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
        data?: Record<string, unknown> | undefined;
        description?: string | undefined;
    };
    source: {
        type: string;
        valueType: "status";
        variant: "source";
        props?: any;
        transfer?: ArrayBuffer[] | undefined;
    };
    sink: {
        type: string;
        valueType: "boolean";
        variant: "sink";
        props?: any;
        transfer?: ArrayBuffer[] | undefined;
    };
    triggered: boolean;
}, {
    status: {
        message: string;
        key: string;
        time: string | number | Number | import('@synnaxlabs/client').TimeStamp | {
            value: bigint;
        };
        variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
        data?: Record<string, unknown> | undefined;
        description?: string | undefined;
    };
    triggered: boolean;
    source?: {
        type: string;
        valueType: "status";
        variant: "source";
        props?: any;
        transfer?: ArrayBuffer[] | undefined;
    } | undefined;
    sink?: {
        type: string;
        valueType: "boolean";
        variant: "sink";
        props?: any;
        transfer?: ArrayBuffer[] | undefined;
    } | undefined;
}>;
interface InternalState {
    source: telem.StatusSource;
    sink: telem.BooleanSink;
    stopListening: Destructor;
}
export declare class Chip extends aether.Leaf<typeof chipStateZ, InternalState> {
    static readonly TYPE = "Chip";
    schema: z.ZodObject<{
        triggered: z.ZodBoolean;
        status: 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;
            }>, import('@synnaxlabs/client').TimeStamp, {
                value: bigint;
            }>, z.ZodEffects<z.ZodString, import('@synnaxlabs/client').TimeStamp, string>, z.ZodEffects<z.ZodType<Number, z.ZodTypeDef, Number>, import('@synnaxlabs/client').TimeStamp, Number>, z.ZodEffects<z.ZodNumber, import('@synnaxlabs/client').TimeStamp, number>, z.ZodType<import('@synnaxlabs/client').TimeStamp, z.ZodTypeDef, import('@synnaxlabs/client').TimeStamp>]>;
            data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        }, "strip", z.ZodTypeAny, {
            message: string;
            key: string;
            time: import('@synnaxlabs/client').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 | import('@synnaxlabs/client').TimeStamp | {
                value: bigint;
            };
            variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
            data?: Record<string, unknown> | undefined;
            description?: string | undefined;
        }>;
        sink: z.ZodDefault<z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
            type: z.ZodString;
            variant: z.ZodEnum<["source", "sink", "source-transformer", "sink-transformer"]>;
            valueType: z.ZodString;
            props: z.ZodAny;
            transfer: z.ZodOptional<z.ZodArray<z.ZodType<ArrayBuffer, z.ZodTypeDef, ArrayBuffer>, "many">>;
        }, {
            variant: z.ZodLiteral<"sink">;
        }>, {
            valueType: z.ZodLiteral<"boolean">;
        }>, "strip", z.ZodTypeAny, {
            type: string;
            valueType: "boolean";
            variant: "sink";
            props?: any;
            transfer?: ArrayBuffer[] | undefined;
        }, {
            type: string;
            valueType: "boolean";
            variant: "sink";
            props?: any;
            transfer?: ArrayBuffer[] | undefined;
        }>>>;
        source: z.ZodDefault<z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
            type: z.ZodString;
            variant: z.ZodEnum<["source", "sink", "source-transformer", "sink-transformer"]>;
            valueType: z.ZodString;
            props: z.ZodAny;
            transfer: z.ZodOptional<z.ZodArray<z.ZodType<ArrayBuffer, z.ZodTypeDef, ArrayBuffer>, "many">>;
        }, {
            variant: z.ZodLiteral<"source">;
        }>, {
            valueType: z.ZodLiteral<"status">;
        }>, "strip", z.ZodTypeAny, {
            type: string;
            valueType: "status";
            variant: "source";
            props?: any;
            transfer?: ArrayBuffer[] | undefined;
        }, {
            type: string;
            valueType: "status";
            variant: "source";
            props?: any;
            transfer?: ArrayBuffer[] | undefined;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        status: {
            message: string;
            key: string;
            time: import('@synnaxlabs/client').TimeStamp;
            variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
            data?: Record<string, unknown> | undefined;
            description?: string | undefined;
        };
        source: {
            type: string;
            valueType: "status";
            variant: "source";
            props?: any;
            transfer?: ArrayBuffer[] | undefined;
        };
        sink: {
            type: string;
            valueType: "boolean";
            variant: "sink";
            props?: any;
            transfer?: ArrayBuffer[] | undefined;
        };
        triggered: boolean;
    }, {
        status: {
            message: string;
            key: string;
            time: string | number | Number | import('@synnaxlabs/client').TimeStamp | {
                value: bigint;
            };
            variant: "disabled" | "loading" | "error" | "secondary" | "warning" | "success" | "info";
            data?: Record<string, unknown> | undefined;
            description?: string | undefined;
        };
        triggered: boolean;
        source?: {
            type: string;
            valueType: "status";
            variant: "source";
            props?: any;
            transfer?: ArrayBuffer[] | undefined;
        } | undefined;
        sink?: {
            type: string;
            valueType: "boolean";
            variant: "sink";
            props?: any;
            transfer?: ArrayBuffer[] | undefined;
        } | undefined;
    }>;
    afterUpdate(): Promise<void>;
    private updateEnabledState;
    afterDelete(): Promise<void>;
    private asyncAfterDelete;
    render(): void;
}
export {};
//# sourceMappingURL=chip.d.ts.map