import { DesignWidget } from "@/types";
import { WidgetState } from "@/enums";
import { FreeLayoutService } from "./index";
export declare class Widget<T = any> implements DesignWidget {
    service: FreeLayoutService;
    container: HTMLElement | null;
    id: string;
    tag: string;
    x: number;
    y: number;
    width: number;
    height: number;
    state: WidgetState;
    disableDrag?: boolean;
    disableResize?: boolean;
    moving?: boolean;
    resizing?: boolean;
    customDragNode?: boolean;
    levels: number;
    initState?: T;
    dragOffset: {
        x: number;
        y: number;
    };
    constructor(options: DesignWidget, service: FreeLayoutService);
    setOptions(options: DesignWidget<T>): void;
    setPosition(x: number, y: number): void;
    setSize(width: number, height: number): void;
    toJson(): DesignWidget<T>;
    startDrag(startEvent: MouseEvent): void;
}
