import { CycleTimeUnit } from '@zgfe/business-lib/es/cycleTime';
import ZModulesCDP from '../../../../types';
export declare enum DatasetType {
    EVENT = 1,
    USER = 2,
    DETAIL = 3
}
export interface FusionParams {
    /**
     * 数据集id
     */
    datasetId?: number;
    /**
     * 关联主体
     */
    subjectId?: number | string;
    /**
     * 数据集类型
     */
    datasetType?: DatasetType;
    /**
     * 更新方式
     */
    syncType?: ZModulesCDP.DataSet.SyncType;
    /**
     * 增量更新依据字段
     * 当updateType为增量更新时必传
     */
    increment?: FusionUpdateType;
    /**
     * 更新频率
     */
    updateFrequency?: FusionTimeFrequency;
    /**
     * 事件名称
     */
    eventName?: string;
    /**
     * 时间字段
     */
    timeField?: string;
    /**
     * 用户标识字段
     */
    userIdentify?: string;
    /**
     * 属性列表
     */
    attrs?: FusionAttr[];
    /**
     * 数据唯一标识
     */
    dataId?: string;
    /**
     * 失败重跑
     */
    rerun?: {
        time: number;
        minutes: number;
    };
}
export type StringField = 'eventName' | 'timeField' | 'userIdentify';
export interface FusionTimeFrequency {
    /**
     * 更新类型：手动更新: 1，定时更新: 2 ， 依赖数据集类型：3
     */
    type: ZModulesCDP.DataSet.UpdateType;
    /**
     * 更新规则，自动更新时必传
     */
    rule?: {
        /**
         * 时间单位
         */
        unit: CycleTimeUnit;
        /**
         * 定时任务时间值
         * 周(1-7)：[1, 2, 7]: 周几
         * 月(1-28)：[2, 3, 9]：几号
         */
        day?: number[];
        /**
         * 时分秒
         * 如：12:03:39
         */
        time: string;
    };
}
export interface FusionParamsColumns {
    /**
     * label名称
     */
    comment: string;
    relation?: FusionParamsColumnAttr[];
}
export interface FusionParamsColumnAttr {
    name: string;
    type: string;
    toName: string;
    toType: string;
    toWebType: string;
}
export interface FusionUpdateType {
    /**
     * 字段名称
     */
    name?: string;
    /**
     * 字段类型
     */
    webType?: string;
    /**
     * 类型是日期时的格式
     */
    format?: string;
}
/**
 * 来源目标字段映射属性
 */
export interface FusionAttr {
    /**
     * 来源表字段名
     */
    source?: string;
    /**
     * 目标表字段对象
     */
    target?: FusionAttrTarget;
}
/**
 * 映射目标表字段属性
 */
export interface FusionAttrTarget {
    /**
     * 字段名称
     */
    name?: string;
    /**
     * 属性别名
     */
    alias?: string;
    /**
     * 属性类型
     */
    webType?: string;
    /**
     * 目标表是否有映射
     */
    hasMapping?: boolean;
    /**
     * 选择平台时，枚举值的映射关系
     */
    platform?: {
        js?: string;
        android?: string;
        ios?: string;
    };
}
