export interface WidgetStyle {
    left: number;
    top: number;
    width: number;
    height: number;
    rotate?: number;
    opacity?: number;
    [key: string]: any;
}
export type WidgetType = 'text' | 'image' | 'video' | 'button' | 'text-input' | 'input' | 'select' | 'time-picker' | 'line-chart' | 'pie-chart' | 'bar-chart' | 'ring-chart' | 'scatter-chart' | 'gaode-map' | 'baidu-map' | 'tencent-map' | 'table' | 'border' | 'layout';
export declare class Widget {
    id: string;
    type: WidgetType;
    style: WidgetStyle;
    props: Record<string, any>;
    constructor(id: string, type: WidgetType, style?: Partial<WidgetStyle>, props?: Record<string, any>);
    clone(): Widget;
    toJSON(): {
        id: string;
        type: WidgetType;
        style: {
            [x: string]: any;
            left: number;
            top: number;
            width: number;
            height: number;
            rotate?: number | undefined;
            opacity?: number | undefined;
        };
        props: {
            [x: string]: any;
        };
    };
    static fromJSON(json: any): Widget;
}
