import { xy } from '@synnaxlabs/x';
import { ReactElement, RefObject } from 'react';
import { z } from 'zod';
import { Align } from '../../align';
import { OptionalControl } from '../../input/types';
export declare const completeStickyXYz: z.ZodObject<z.objectUtil.extendShape<{
    x: z.ZodNumber;
    y: z.ZodNumber;
}, {
    root: z.ZodObject<{
        x: z.ZodEnum<["left", "right"]>;
        y: z.ZodEnum<["top", "bottom"]>;
    }, "strip", z.ZodTypeAny, {
        x: "right" | "left";
        y: "top" | "bottom";
    }, {
        x: "right" | "left";
        y: "top" | "bottom";
    }>;
    units: z.ZodObject<{
        x: z.ZodEnum<["px", "decimal"]>;
        y: z.ZodEnum<["px", "decimal"]>;
    }, "strip", z.ZodTypeAny, {
        x: "px" | "decimal";
        y: "px" | "decimal";
    }, {
        x: "px" | "decimal";
        y: "px" | "decimal";
    }>;
}>, "strip", z.ZodTypeAny, {
    x: number;
    y: number;
    root: {
        x: "right" | "left";
        y: "top" | "bottom";
    };
    units: {
        x: "px" | "decimal";
        y: "px" | "decimal";
    };
}, {
    x: number;
    y: number;
    root: {
        x: "right" | "left";
        y: "top" | "bottom";
    };
    units: {
        x: "px" | "decimal";
        y: "px" | "decimal";
    };
}>;
export type CompleteStickyXY = z.infer<typeof completeStickyXYz>;
export declare const stickyXYz: z.ZodObject<{
    x: z.ZodNumber;
    y: z.ZodNumber;
    root: z.ZodOptional<z.ZodObject<{
        x: z.ZodEnum<["left", "right"]>;
        y: z.ZodEnum<["top", "bottom"]>;
    }, "strip", z.ZodTypeAny, {
        x: "right" | "left";
        y: "top" | "bottom";
    }, {
        x: "right" | "left";
        y: "top" | "bottom";
    }>>;
    units: z.ZodOptional<z.ZodObject<{
        x: z.ZodEnum<["px", "decimal"]>;
        y: z.ZodEnum<["px", "decimal"]>;
    }, "strip", z.ZodTypeAny, {
        x: "px" | "decimal";
        y: "px" | "decimal";
    }, {
        x: "px" | "decimal";
        y: "px" | "decimal";
    }>>;
}, "strip", z.ZodTypeAny, {
    x: number;
    y: number;
    root?: {
        x: "right" | "left";
        y: "top" | "bottom";
    } | undefined;
    units?: {
        x: "px" | "decimal";
        y: "px" | "decimal";
    } | undefined;
}, {
    x: number;
    y: number;
    root?: {
        x: "right" | "left";
        y: "top" | "bottom";
    } | undefined;
    units?: {
        x: "px" | "decimal";
        y: "px" | "decimal";
    } | undefined;
}>;
export type StickyXY = z.infer<typeof stickyXYz>;
export declare const calcStickyPos: (pos: xy.XY, ref: RefObject<HTMLDivElement>) => StickyXY | null;
export interface ContainerProps extends Omit<Align.SpaceProps, "onChange">, Partial<OptionalControl<StickyXY>> {
    dragEnabled?: boolean;
}
export declare const Container: import('react').MemoExoticComponent<({ className, value, onChange, style, draggable, ...props }: ContainerProps) => ReactElement | null>;
//# sourceMappingURL=Container.d.ts.map