import { CycleTimeUnit } from '@zgfe/business-lib/es/cycleTime';
declare namespace ZModulesCDP {
    enum WebType {
        number = "number",
        string = "string",
        date = "date"
    }
    interface SimpleLinkData {
        /**
         * 连接id
         */
        id: number;
        /**
         * 类别名称
         */
        type: string;
        /**
         * 连接名称
         */
        name: string;
    }
    interface LinkData {
        /**
         * 连接id
         */
        id?: number;
        /**
         * 类别名称
         */
        type: string;
        /**
         * 连接名称
         */
        name: string;
        /**
         * 创建人姓名
         */
        creator?: string;
        /**
         * 创建时间
         */
        createDate?: number;
        [other: string]: any;
    }
    namespace DataSet {
        /**
         * 数据集实例
         */
        interface SimpleInstance {
            /**
             * 数据集id
             */
            id?: number;
            /**
             * 数据集名称
             */
            name: string;
            /**
             * 数据集表名称
             */
            tableName: string;
            /**
             * 数据集描述
             */
            desc: string;
        }
        /**
         * 数据集实例(数据集列表响应结构)
         */
        interface ListInstance {
            id: number;
            name: string;
            tableName: string;
            /**
             * 创建人
             */
            creator: string;
            /**
             * 创建时间
             */
            createTime: Date;
            /**
             * 更新方式
             */
            syncType: UpdateType;
            /**
             * 关联任务数
             */
            jobCount: number;
        }
        /**
         * 数据集更新方式
         */
        enum SyncType {
            /**
             * 全量更新
             */
            global = 1,
            /**
             * 增量更新
             */
            incre = 2
        }
        /**
         * 更新类型
         */
        enum UpdateType {
            /**
             * 手动更新
             */
            mumal = 1,
            /**
             * 自动更新
             */
            timer = 2
        }
        /**
         * 数据库表字段基本类型
         */
        interface BaseColumn {
            /**
             * 字段名称
             */
            name: string;
            /**
             * 字段类型（原始数据库中的字段类型）
             */
            type: string;
            /**
             * 是否是主键列
             */
            isPrimaryKey: boolean;
        }
        /**
         * 表字段数据
         */
        interface Column extends BaseColumn {
            /**
             * 字段备注
             */
            comment: string;
            /**
             * 字段类型（web端处理用）
             */
            webType: WebType;
        }
        interface DataOutputColumn extends BaseColumn {
            /**
             * 字段备注
             */
            title: string;
            /**
             * 字段类型（web端处理用）
             */
            dataIndex: string;
            key: string;
        }
        /**
         * 字段抽取规则
         */
        interface ColumnRule {
            /**
             * 字段名称
             */
            column: string;
            /**
             * 条件操作符
             */
            operator: string;
            /**
             * 条件值
             * 字符串：['value']
             * 数字：["2"]
             * 绝对日期：['2020-02-09', '2020-02-15']
             * 相对日期：["6"]
             */
            value: string[];
        }
        /**
         * 新建数据集参数
         */
        interface CreateParam {
            /**
             * 数据集名称
             */
            datasetName: string;
            /**
             * 数据库类型
             */
            dbType: string;
            /**
             * 数据源id
             */
            dbSourceId: number;
            /**
             * 数据表名称
             */
            dbTableName: string;
            /**
             * 应用id
             */
            appId: number;
            /**
             * 同步字段列表
             */
            columns: Column[];
            /**
             * 抽取设置规则列表
             */
            columnRules: ColumnRule[];
            /**
             * 更新方式
             */
            syncType: SyncType;
            /**
             * 增量更新依据字段
             * 当updateType为增量更新时必传
             */
            updateBy?: Column;
            /**
             * 更新设置
             */
            updateSetting: {
                /**
                 * 更新类型：手动更新: 1、定时更新: 2
                 */
                type: UpdateType;
                /**
                 * 更新规则，自动更新时必传
                 */
                rule?: {
                    /**
                     * 时间单位
                     */
                    unit: CycleTimeUnit;
                    /**
                     * 定时任务时间值
                     * 周(1-7)：[1, 2, 7]: 周几
                     * 月(1-28)：[2, 3, 9]：几号
                     */
                    day?: number[];
                    /**
                     * 时分秒
                     * 如：12:03:39
                     */
                    time: string;
                };
            };
            /**
             * 任务名称
             */
            jobName: string;
            /**
             * 任务描述
             */
            jobDesc: string;
        }
        /**
         * 编辑的任务详情信息
         */
        interface TaskEditInfo extends CreateParam {
            /**
             * 任务id
             */
            id: number;
            /**
             * 数据源名称
             */
            dbSourceName: string;
            taskId: number;
        }
        /**
         * 任务更新状态
         */
        enum UpdateState {
            success = "SUCCESS",
            fail = "FAILURE",
            running = "RUNNING_EXECUTION"
        }
        enum jobTypeState {
            Disabled = 0,
            Updating = 1,
            Success = 2,
            Failed = 3
        }
        /**
         * 任务更新记录
         */
        interface HistoryData {
            /**
             * 记录id
             */
            id: number;
            /**
             * 更新完成时间
             */
            endTime: Date;
            /**
             * 更新数据条数
             */
            successRead: number;
            /**
             * 更新状态
             */
            state: UpdateState;
        }
        interface QueryTaskPara {
            /**
             * 数据集或创建人名称
             */
            name: string;
        }
        /**
         * 任务状态
         */
        enum TaskStatus {
            /**
             * 启用
             */
            enable = 1,
            /**
             * 禁用
             */
            disable = 2,
            /**
             * 已删除
             */
            deleted = 3,
            /**
             * 不合法任务
             */
            invalid = 4,
            isOnline = 5
        }
        enum JobType {
            /**
             * 普通数据集
             */
            normal = 1,
            /**
             * 可视化数据集
             */
            visual = 2
        }
        /**
         * 任务信息
         */
        interface Task {
            jobStatus: number;
            eventIsExit: number;
            dsName: any;
            taskId: any;
            isOnline: TaskStatus;
            /**
             * 任务id
             */
            id: number;
            /**
             * 任务名称
             */
            jobName: string;
            /**
             * 数据集名称
             */
            datasetName: string;
            /**
             * 数据库类型
             */
            dbType: string;
            /**
             * 表名称
             */
            tableName: string;
            /**
             * 创建人
             */
            creator: string;
            /**
             * 创建时间
             */
            createTime: Date;
            /**
             * 最近更新完成时间
             */
            lastUpdateTime: Date;
            /**
             * 下次执行时间
             */
            nextRunTime: Date;
            /**
             * 更新方式
             */
            updateType: UpdateType;
            /**
             * 更新状态：成功、失败、执行中
             */
            state: UpdateState;
            /**
             * 启用状态
             */
            status: TaskStatus;
            /**
             * 数据集任务类型，包括普通数据集以及可视化数据集
             */
            jobType: JobType;
            /**
             * 画布id，当任务类型是可视化数据集时有
             */
            flowId?: number;
        }
        interface dataOutputTask {
            /**
             * 任务id
             */
            id: number;
            data: any;
            /**
             * 任务名称
             */
            jobName: string;
            /**
             * 数据集名称
             */
            datasetName: string;
            /**
             * 数据库类型
             */
            dbType: string;
            /**
             * 表名称
             */
            tableName: string;
            /**
             * 创建人
             */
            creator: string;
            /**
             * 创建时间
             */
            createTime: Date;
            /**
             * 最近更新完成时间
             */
            lastUpdateTime: Date;
            /**
             * 下次执行时间
             */
            nextRunTime: Date;
            /**
             * 更新方式
             */
            updateType: UpdateType;
            /**
             * 更新状态：成功、失败、执行中
             */
            state: UpdateState;
            /**
             * 启用状态
             */
            status: TaskStatus;
            /**
             * 数据集任务类型，包括普通数据集以及可视化数据集
             */
            jobType: JobType;
            /**
             * 画布id，当任务类型是可视化数据集时有
             */
            flowId?: number;
        }
        /**
         * 创建任务组件特性
         */
        interface CreateProp {
            /**
             * 组件模式
             */
            mode: 'edit' | 'create';
            /**
             * 任务id，mode为edit时必传
             */
            taskId?: number;
            /**
             * 返回按钮点击回调
             */
            onBack?: () => void;
            /**
             * 保存成功回调
             */
            onOk?: () => void;
        }
    }
    interface OpenDataList {
        name: string;
        description: string;
        url: string;
    }
}
export default ZModulesCDP;
