import { Map } from 'immutable'; import { runTimeType } from '../Container/types'; import { BasicContainerPropsInterface } from '../..'; export interface CustomerItem { /** * customer名称 */ name: string; /** * customer执行模式 */ mode?: string; /** * customer配置 */ config?: any; /** * customer 函数 */ func?: string; } export interface CustomerGroup { /** * 组合名称 */ name: string; /** * 执行顺序 */ steps: string[]; } export interface CustomerSourceConfig { /** * 单个customer配置 */ customers: CustomerItem[]; /** * 业务组合 */ groups: CustomerGroup[]; } export interface BasicCustomerInstance { exec(config: any, params: CustomerParams): Promise; } /** * 把DataCustomerFunc函数变量注入到context中 * * @param {Object} context */ export declare function injectDataCustomerIntoContext(context: Object): void; export interface CustomerParams { runTime: runTimeType; model: string; prev: any; props: BasicContainerPropsInterface; customer: string; context: Object; } /** * DataCustomer是一个数据源输出端 * 它通过注入customer插件的形式, 把各种各样的数据消耗方加载进来 * 针对特殊的业务逻辑场景, 可以使用Group来使用链式调用 */ export declare class DataCustomer { private customers; private groups; constructor(); initCustomerConfig(info: CustomerSourceConfig): void; getGroups(): Map; execCustomer(params: CustomerParams): Promise; private initCustomer(info); }