import { Destructor } from '@synnaxlabs/x';
import { z } from 'zod';
import { aether } from '../../../aether/aether';
import { StateProvider } from './state';
export declare const legendStateZ: z.ZodObject<{
    needsControlOf: z.ZodArray<z.ZodUnion<[z.ZodUInt32, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>>;
    states: z.ZodArray<z.ZodObject<{
        subject: z.ZodObject<{
            name: z.ZodString;
            key: z.ZodString;
        }, z.core.$strip>;
        resource: z.ZodNumber;
        authority: z.ZodInt;
        subjectColor: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
            rgba255: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
        }, z.core.$strip>]>, z.ZodTransform<[number, number, number, number], string | [number, number, number] | [number, number, number, number] | {
            rgba255: [number, number, number, number];
        }>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
interface InternalState {
    stateProv: StateProvider;
    disconnectStateProv?: Destructor;
}
export declare class Legend extends aether.Leaf<typeof legendStateZ, InternalState> {
    static readonly TYPE = "Legend";
    schema: z.ZodObject<{
        needsControlOf: z.ZodArray<z.ZodUnion<[z.ZodUInt32, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>>;
        states: z.ZodArray<z.ZodObject<{
            subject: z.ZodObject<{
                name: z.ZodString;
                key: z.ZodString;
            }, z.core.$strip>;
            resource: z.ZodNumber;
            authority: z.ZodInt;
            subjectColor: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
                rgba255: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
            }, z.core.$strip>]>, z.ZodTransform<[number, number, number, number], string | [number, number, number] | [number, number, number, number] | {
                rgba255: [number, number, number, number];
            }>>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    afterUpdate(ctx: aether.Context): void;
    afterDelete(): void;
    render(): void;
}
export {};
//# sourceMappingURL=legend.d.ts.map