import { box, record } from '@synnaxlabs/x';
import { ReactElement } from 'react';
import { z } from 'zod';
export declare const TEXT_TYPE = "text";
export type TextType = typeof TEXT_TYPE;
export declare const textPropsZ: z.ZodObject<{
    value: z.ZodString;
    level: z.ZodEnum<{
        small: "small";
        h1: "h1";
        h2: "h2";
        h3: "h3";
        h4: "h4";
        h5: "h5";
        p: "p";
    }>;
    weight: z.ZodUnion<readonly [z.ZodNumber, z.ZodEnum<{
        bold: "bold";
        lighter: "lighter";
        normal: "normal";
        bolder: "bolder";
    }>]>;
    align: z.ZodUnion<[z.ZodEnum<{
        right: "right";
        left: "left";
    }>, z.ZodEnum<{
        center: "center";
    }>]>;
    backgroundColor: 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.core.$strip>;
export type TextProps = z.infer<typeof textPropsZ>;
export type CellProps<P extends object = record.Unknown> = P & {
    cellKey: string;
    box: box.Box;
    selected: boolean;
    onSelect: (key: string, ev: React.MouseEvent) => void;
    onChange: (props: P) => void;
};
export declare const Text: ({ cellKey, onChange, value, selected, onSelect, align, level, weight, backgroundColor, }: CellProps<TextProps>) => ReactElement;
export declare const VALUE_TYPE = "value";
export type ValueType = typeof VALUE_TYPE;
export declare const valuePropsZ: z.ZodObject<{
    telem: z.ZodObject<{
        type: z.ZodString;
        props: z.ZodAny;
        transfer: z.ZodOptional<z.ZodArray<z.ZodCustom<ArrayBuffer, ArrayBuffer>>>;
        variant: z.ZodLiteral<"source">;
        valueType: z.ZodLiteral<"string">;
    }, z.core.$strip>;
    redline: z.ZodObject<{
        bounds: z.ZodObject<{
            lower: z.ZodNumber;
            upper: z.ZodNumber;
        }, z.core.$strip>;
        gradient: z.ZodArray<z.ZodObject<{
            key: z.ZodString;
            color: 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>]>;
            position: z.ZodNumber;
            switched: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    level: z.ZodEnum<{
        small: "small";
        h1: "h1";
        h2: "h2";
        h3: "h3";
        h4: "h4";
        h5: "h5";
        p: "p";
    }>;
    color: z.ZodString;
    units: z.ZodString;
    stalenessTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    stalenessColor: z.ZodDefault<z.ZodOptional<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>;
export type ValueProps = z.infer<typeof valuePropsZ>;
export declare const Value: ({ cellKey, telem: t, level, color, redline: { gradient, bounds }, selected, box: b, onSelect, stalenessTimeout, stalenessColor, }: CellProps<ValueProps>) => import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=Cells.d.ts.map