import { EventType } from 'mitt';
import elementResizeDetectorMaker from 'element-resize-detector';
import { TLayout } from '@/components';
import { IPlaceholder } from '@/core/gridlayout/interfaces/layout-data.interface';
import { IBreakpoints, IColumns } from './grid-layout-props.interface';
export interface IGridLayoutProps {
    autoSize?: boolean;
    borderRadiusPx?: number;
    breakpoints?: IBreakpoints;
    colNum?: number;
    cols?: IColumns;
    distributeEvenly?: boolean;
    horizontalShift?: boolean;
    isBounded?: boolean;
    isDraggable?: boolean;
    isMirrored?: boolean;
    isResizable?: boolean;
    layout: TLayout;
    margin?: number[];
    maxRows?: number;
    preventCollision?: boolean;
    responsive?: boolean;
    responsiveLayouts?: {
        [key: string]: TLayout;
    };
    restoreOnDrag?: boolean;
    rowHeight?: number;
    showCloseButton?: boolean;
    showGridLines?: boolean;
    transformScale?: number;
    useBorderRadius?: boolean;
    useCssTransforms?: boolean;
    verticalCompact?: boolean;
}
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<IGridLayoutProps, {
    defaultGridItem: import("vue").Ref<any, any>;
    dragEvent: (eventName?: EventType, id?: string | number, x?: number, y?: number, h?: number, w?: number) => void;
    erd: import("vue").Ref<{
        listenTo: (element: HTMLElement, callback: (elem: HTMLElement) => void) => void;
        removeListener: (element: HTMLElement, callback: (elem: HTMLElement) => void) => void;
        removeAllListeners: (element: HTMLElement) => void;
        uninstall: (element: HTMLElement) => void;
    } | null, elementResizeDetectorMaker.Erd | {
        listenTo: (element: HTMLElement, callback: (elem: HTMLElement) => void) => void;
        removeListener: (element: HTMLElement, callback: (elem: HTMLElement) => void) => void;
        removeAllListeners: (element: HTMLElement) => void;
        uninstall: (element: HTMLElement) => void;
    } | null>;
    isDragging: import("vue").Ref<boolean, boolean>;
    lastBreakpoint: import("vue").Ref<string | null, string | null>;
    lastLayoutLength: import("vue").Ref<number, number>;
    layouts: import("vue").Ref<{
        [key: string]: any;
    }, {
        [key: string]: any;
    }>;
    mergeStyle: import("vue").Ref<{
        [key: string]: string;
    }, {
        [key: string]: string;
    }>;
    originalLayout: import("vue").Ref<TLayout | undefined, TLayout | undefined>;
    placeholder: import("vue").Ref<{
        h: number;
        i: number | string;
        x: number;
        y: number;
        w: number;
    }, IPlaceholder | {
        h: number;
        i: number | string;
        x: number;
        y: number;
        w: number;
    }>;
    width: import("vue").Ref<number | null, number | null>;
    layout: TLayout;
    autoSize: boolean;
    borderRadiusPx: number;
    breakpoints: IBreakpoints;
    colNum: number;
    cols: IColumns;
    distributeEvenly: boolean;
    horizontalShift: boolean;
    isBounded: boolean;
    isDraggable: boolean;
    isMirrored: boolean;
    isResizable: boolean;
    margin: number[];
    maxRows: number;
    preventCollision: boolean;
    responsive: boolean;
    responsiveLayouts: {
        [key: string]: TLayout;
    };
    restoreOnDrag: boolean;
    rowHeight: number;
    showCloseButton: boolean;
    showGridLines: boolean;
    transformScale: number;
    useBorderRadius: boolean;
    useCssTransforms: boolean;
    verticalCompact: boolean;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    [x: string]: any;
} & {
    [x: string]: any;
}, string, import("vue").PublicProps, Readonly<IGridLayoutProps> & Readonly<{
    [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
}>, {
    borderRadiusPx: number;
    isBounded: boolean;
    isDraggable: boolean;
    isMirrored: boolean;
    isResizable: boolean;
    showCloseButton: boolean;
    useBorderRadius: boolean;
    autoSize: boolean;
    responsive: boolean;
    cols: IColumns;
    colNum: number;
    rowHeight: number;
    margin: number[];
    maxRows: number;
    transformScale: number;
    breakpoints: IBreakpoints;
    distributeEvenly: boolean;
    horizontalShift: boolean;
    preventCollision: boolean;
    responsiveLayouts: {
        [key: string]: TLayout;
    };
    restoreOnDrag: boolean;
    showGridLines: boolean;
    useCssTransforms: boolean;
    verticalCompact: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
    default?: (props: {}) => any;
}>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
