import { box, xy } from '@synnaxlabs/x';
import { z } from 'zod';
import { TickFactoryRenderArgs } from './ticks';
export interface RenderResult {
    size: number;
}
export declare const axisStateZ: z.ZodObject<{
    tickSpacing: z.ZodDefault<z.ZodNumber>;
    color: 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];
    }>>;
    type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
        time: "time";
        linear: "linear";
    }>>>;
    font: z.ZodString;
    showGrid: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    location: z.ZodEnum<{
        top: "top";
        right: "right";
        bottom: "bottom";
        left: "left";
    }>;
    gridColor: 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 AxisState = z.input<typeof axisStateZ>;
export type ParsedAxisState = z.infer<typeof axisStateZ>;
export interface AxisProps extends Omit<TickFactoryRenderArgs, "size"> {
    plot: box.Box;
    position: xy.XY;
    size: number;
}
export interface Axis {
    setState: (state: AxisState) => void;
    render: (props: AxisProps) => RenderResult;
}
//# sourceMappingURL=axis.d.ts.map