import { GridDragEvent, GridLayoutProps, GridResizeEvent, LayoutItem, LayoutItemRender, LayoutItemType } from '../../types';
export type GridItemState = {
    /**
     * "resizing" indica el tamaño actual cuando se está redimensionando el gridItem
     */
    resizing?: {
        width: number;
        height: number;
    };
    /**
     * "dragging" indica la posición actual cuando se está moviendo el gridItem
     */
    dragging?: {
        top: number;
        left: number;
    };
};
export type PartialPosition = {
    top: number;
    left: number;
};
export interface DraggableData {
    node: HTMLElement;
    x: number;
    y: number;
    deltaX: number;
    deltaY: number;
    lastX: number;
    lastY: number;
}
export type GridItemResizeCallback = (i: string, w: number, h: number, data: GridResizeEvent) => void;
export type GridItemDragCallback = (i: string, x: number, y: number, gridDragEvent: GridDragEvent) => void;
export type Maximize = 'maximize_me' | 'maximize_other' | 'none';
export interface GridItemProps extends Omit<LayoutItem, 'moved'>, Pick<GridLayoutProps, 'cols' | 'resizeHandle' | 'draggableCancel' | 'draggableHandle' | 'containerWidth' | 'containerHeight' | 'transformScale' | 'colapsedHeight' | 'rowHeight' | 'useCSSTransforms' | 'margin' | 'containerPadding' | 'maxRows' | 'style'> {
    /**
     * "type": Indica si es placeHolder o Layout
     */
    type: LayoutItemType;
    layoutItemRender: LayoutItemRender;
    /**
     * "className" permite identificar si es placeHolder y estilar
     */
    className?: string;
    /**
     * zIndex: Permite modificar en los gridItems freeMove (popups) el zIndex
     */
    zIndex?: number;
    /**
     * "usePercentages" indica si usan porcentajes en vez de pixels, se usa antes de montar el componente
     */
    usePercentages?: boolean;
    /**
     * "maximize" indica si el gridItem está maximizado, o si otro está maxmizado o si ninguno
     */
    maximize: Maximize;
    /**
     * "onDrag" función que maneja el onDrag del gridItem
     */
    onDrag?: GridItemDragCallback;
    /**
     * "onDragStart" función que maneja el onDragStart del gridItem
     */
    onDragStart?: GridItemDragCallback;
    /**
     * "onDragStop" función que maneja el onDragStop del gridItem
     */
    onDragStop?: GridItemDragCallback;
    /**
     * "onResize" función que maneja el onResize del gridItem
     */
    onResize?: GridItemResizeCallback;
    /**
     * "onResizeStart" función que maneja el onResizeStart del gridItem
     */
    onResizeStart?: GridItemResizeCallback;
    /**
     * "onResizeStop" función que maneja el onResizeStop del gridItem
     */
    onResizeStop?: GridItemResizeCallback;
    /**
     * "onFreeMoveClick" función que va a tender los onclicks del gridItem
     */
    onFreeMoveClick?: (i: string) => void;
}
export type RefProps = {
    cols: number;
    x: number;
    y: number;
    w: number;
    h: number;
    minW: number;
    maxW: number;
    minH: number;
    maxH: number;
    containerWidth: number;
    containerHeight: number;
    margin: [number, number];
    containerPadding: [number, number];
    rowHeight: number;
    maxRows: number;
    colapsed?: boolean;
    visible?: boolean;
};
//# sourceMappingURL=types.d.ts.map