import { SocketClient } from '@zgfe/business-lib';
import { Dispatch, SetStateAction } from 'react';
export declare const classPrefix = "visual-workbench";
/**
 * 平台类型
 */
export declare enum Platform {
    ios = 0,
    android = 1
}
/**
 * app可视化全局上下文
 */
export interface AppVisualContext {
    /**
     * socket连接地址信息
     */
    socketUrl: string;
    /**
     * 平台类型
     */
    platform?: Platform;
    /**
     * 可视化事件列表
     */
    eventList: AppVisualEvent[];
    /**
     * 设置可视化事件列表
     */
    setEventList?: Dispatch<SetStateAction<AppVisualEvent[]>>;
    /**
     * 当前页面
     */
    currentPage?: string;
    /**
     * 设置当前页面
     */
    setCurrentPage?: Dispatch<SetStateAction<string | undefined>>;
    /**
     * 当前选中的元素
     */
    currentElement?: AppVisualSocketBtn;
    /**
     * 设置当前选中的元素
     */
    setCurrentElement?: Dispatch<SetStateAction<AppVisualSocketBtn | undefined>>;
    /**
     * 展示同类元素
     */
    showSimilar?: boolean;
    /**
     * 设置是否显示同类元素
     */
    setShowSimilar?: Dispatch<SetStateAction<boolean>>;
    /**
     * 选中编辑的事件
     */
    editEvent?: AppVisualEvent;
    /**
     * 设置编辑的事件
     */
    setEditEvent?: Dispatch<SetStateAction<AppVisualEvent | undefined>>;
    /**
     * socket客户端
     */
    client?: SocketClient;
    /**
     * 初始化socket客户端
     * @param client
     * @returns
     */
    initClient?: (client: SocketClient) => void;
}
/**
 * 端类型
 */
export declare enum EndpointType {
    /**
     * 小程序端
     */
    miniProgram = 1,
    /**
     * app端（已废弃）
     * @deprecated
     */
    app = 2,
    /**
     * 分析平台端
     */
    web = 3,
    /**
     * android-sdk端
     */
    android = 4,
    /**
     * ios-sdk端
     */
    ios = 5
}
/**
 * app可视化事件
 */
export interface AppVisualEvent extends AppVisualCreateParam {
    id: number;
    /**
     * 创建时间
     */
    createTime?: Date;
    /**
     * 更新时间
     */
    updateTime?: Date;
    elementConditions?: AppVisualCreateParam['elementConditionMap'];
}
/**
 * button元素信息
 */
export interface AppVisualSocketBtn {
    /**
     * 路径唯一标识，可忽略
     */
    sign: string;
    /**
     * 所处父级元素的次序
     */
    zgSupViewIndex: number;
    /**
     * 元素内容
     */
    viewName: string;
    /**
     * 元素唯一标识
     */
    identification: string;
    /**
     * 元素位置
     */
    location: {
        x: number;
        y: number;
        w: number;
        h: number;
    };
    /**
     * zindex
     */
    zgZIndexLevel: number;
}
/**
 * 页面数据
 */
export interface AppVisualPageData {
    /**
     * 页面路径
     */
    pageUrl: string;
    /**
     * 背景图片
     */
    bgImg: string;
    /**
     * 消息唯一标识
     */
    key: string;
    /**
     * 可点击元素列表
     */
    allBtns: AppVisualSocketBtn[];
    /**
     * 缩放比例
     */
    scale: number;
    /**
     * 屏幕大小
     */
    screenSize: {
        w: number;
        h: number;
    };
}
/**
 * 可视化创建事件表单数据
 */
export interface AppVisualCreateFormData {
    /**
     * 可视化事件名称
     */
    name: string;
    /**
     * 所属页面范围
     */
    scope: 'current' | 'all';
    /**
     * 其它规则
     */
    rules: {
        [other: string]: string | number | boolean | undefined;
    };
}
/**
 * 可视化事件创建接口参数
 */
export interface AppVisualCreateParam {
    /**
     * 所属app
     */
    appKey: string;
    /**
     * 端点类型
     */
    endpointType: EndpointType;
    /**
     * 事件名称
     */
    eventName: string;
    /**
     * 事件类型
     */
    eventType: 'pv' | 'click';
    /**
     * 所属页面
     */
    pagePath?: string;
    /**
     * 限定条件
     */
    elementConditionMap: {
        [prop: string]: string | number | boolean | undefined;
    };
}
