import { z } from 'zod';
import { box, location, xy } from '@synnaxlabs/x';

export declare const gridEntrySpecZ: 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 GridEntrySpec = z.input<typeof gridEntrySpecZ>;
export type GridSpec = z.input<typeof gridSpecZ>;
export declare const filterGridEntries: (loc: location.Outer, grid: GridSpec) => GridEntrySpec[];
export declare const calculateGridPosition: (key: string, grid: GridSpec, container: box.Box) => xy.XY;
export declare const calculatePlotBox: (grid: GridSpec, container: box.Box) => box.Box;
//# sourceMappingURL=grid.d.ts.map