import { box, location, xy } from "@synnaxlabs/x";
import { z } from "zod";
export declare const gridPositionSpecZ: z.ZodObject<{
    key: z.ZodString;
    size: z.ZodNumber;
    order: z.ZodEnum<["first", "last"]>;
    loc: z.ZodEnum<["top", "right", "bottom", "left"]>;
}, "strip", z.ZodTypeAny, {
    order: "last" | "first";
    key: string;
    size: number;
    loc: "bottom" | "left" | "right" | "top";
}, {
    order: "last" | "first";
    key: string;
    size: number;
    loc: "bottom" | "left" | "right" | "top";
}>;
export declare const gridSpecZ: z.ZodRecord<z.ZodString, z.ZodObject<{
    key: z.ZodString;
    size: z.ZodNumber;
    order: z.ZodEnum<["first", "last"]>;
    loc: z.ZodEnum<["top", "right", "bottom", "left"]>;
}, "strip", z.ZodTypeAny, {
    order: "last" | "first";
    key: string;
    size: number;
    loc: "bottom" | "left" | "right" | "top";
}, {
    order: "last" | "first";
    key: string;
    size: number;
    loc: "bottom" | "left" | "right" | "top";
}>>;
export type GridPositionSpec = z.input<typeof gridPositionSpecZ>;
export type GridSpec = z.input<typeof gridSpecZ>;
export declare const filterGridPositions: (loc: location.Outer, grid: GridSpec) => GridPositionSpec[];
export declare const calculateGridPosition: (key: string, grid: GridSpec, container: box.Box) => xy.XY;
export declare const calculatePlotBox: (grid: GridSpec, container: box.Box) => box.Box;
