import { DataSourceListItemType } from "lowcode/_setters/cDataSource-setter/type";
import { RequestParamMappingDataType } from "lowcode/_setters/cTreeDataRelation-setter/type";
export interface treeDataType {
    label: string;
    key: string;
    type: TreeType | PageStateFlag;
    componentName?: string;
    children?: Array<treeDataType | RelationType>;
    dataSourceList?: DataSourceListItemType[];
    dataSource?: DataSourceListItemType;
}
export interface RelationType extends treeDataType {
    value: string;
}
export declare enum ComponentName {
    Page = "Page",
    FormPro = "FormPro",
    FormItem = "Form.Item",
    Button = "Button",
    Tabs = "Tabs",
    Modal = "Modal",
    Drawer = "Drawer",
    ModalDefault = "ModalDefault",
    Image = "Image",
    LoopBox = "LoopBox",
    CarouselBox = "CarouselBox",
    Col = "Col",
    EngineRulePro = "EngineRulePro",
    EngineRuleUltra = "EngineRuleUltra",
    ToolVideo = "ToolVideo",
    RotateWheel = "RotationWheel"
}
/**
 * 规范定义认可的模块
 */
export declare enum TreeComponentName {
    FormPro = "FormPro"
}
/**
 * 规范this.state里面的数据划分，
 * 未后期拉取数据做划分
 */
export declare enum PageStateFlag {
    /**
     * this.state.modal
     * 弹框类数据
     */
    Modal = "modal",
    /**
     * this.state.state
     * 表单类数据
     */
    State = "state",
    /**
     * this.state.dataSourceMap
     * 数据源类数据
     */
    DataSourceMap = "dataSourceMap",
    /**
     * this.state.customState
     * 自定义数据
     */
    CustomState = "customState",
    /**
     * this.state.submitReturnData
     * 返回数据类型
     */
    SubmitReturnData = "submitReturnData",
    /**
     * this.loopData
     * 循环数据
     */
    LoopData = "loopData",
    /**
     * this.state.loopDataSelected
     * 循环选中数据
     */
    LoopDataSelected = "loopDataSelected",
    /**
     * this.state.walletConnectData
     * 钱包数据
     */
    WalletConnectData = "walletConnectData",
    /**
     * this.state.engineRule
     * 引擎规则
     */
    EngineRule = "engineRule",
    /**
     * this.state.locationData
     * 地址信息
     */
    LocationData = "locationData",
    /**
     * this.state.storageData
     * 本地存储数据
     */
    StorageData = "storageData",
    /**
     * this.state.renderPropsData
     * 通过渲染器传递到当前页面数据
     */
    RenderPropsData = "renderPropsData"
}
export interface ModeParamsItem {
    uuid: string;
    apiParams: Array<RequestParamMappingDataType>;
}
export interface ModeParamsPreviewItem {
    params: {
        [key: string]: any;
    };
}
export interface PageModalObjType extends ModeParamsPreviewItem {
    visible: boolean;
}
export declare enum TreeType {
    /**
     * 来自登录表单 后期废弃
     */
    login = "login",
    /**
     * 来着登录表单项 后期废弃
     */
    loginFormItem = "loginFormItem",
    /**
     * 所有页面定义变量都收集到state中
     */
    state = "state",
    /**
     * 来自原生state每一项
     */
    stateItem = "stateItem",
    /**
    * 所有远端请求结果都存储到这里
    */
    dataSourceMap = "dataSourceMap",
    /**
     * 所有远端请求结果都存储到这里
     */
    dataSourceMapItem = "dataSourceMapItem",
    /**
     * 所有返回的数据
     */
    submitReturnData = "submitReturnData",
    /**
    * 所有返回的数据
    */
    submitReturnDataItem = "submitReturnDataItem",
    /**
     * 将表达式替换某个state的数据
     */
    expressionData = "expressionData",
    expressionDataItem = "expressionDataItem",
    customStateItem = "customStateItem",
    /**
     * 弹框项
     */
    modalItem = "modalItem",
    /**
     * 弹框参数key
     */
    modalParamsKeyItem = "modalParamsKeyItem",
    /**
     * 弹框参数value
     */
    modalParamsValueItem = "modalParamsValueItem",
    /**
     * 钱包信息key
     */
    currentWalletConnectItem = "currentWalletConnectItem",
    /**
     * 字典内容
     */
    dictionaryItem = "dictionaryItem",
    /**
     * 引擎规则
     */
    engineRuleItem = "engineRuleItem",
    /**
     * 循环数据
     */
    loopDataSelectedItem = "loopDataSelected",
    /**
     * 地址信息
     */
    locationItem = "locationItem",
    /**
     * 本地存储数据项
     */
    storageDataItem = "storageDataItem"
}
export declare enum WalletConnectType {
    Address = "address",
    ChainId = "chainId",
    Time = "time",
    Block = "block",
    WalletConnected = "walletConnected",
    Env = "env",
    /**
     * 自定义，可自己输入
     */
    Custom = "custom"
}
export declare enum LocationUrlType {
    origin = "origin",
    host = "host",
    protocol = "protocol",
    /**
    * 自定义，可自己输入
    */
    custom = "custom"
}
export declare enum WalletSessionType {
    sessionTime = "sessionTime",
    sessionBlock = "sessionBlock"
}
