import { Addon, Config } from './aop'; import { Dictionary, PromiseType } from './base'; import { AsyncCallStateMachine } from './state'; /** * 数据查询函数 */ export declare type DataQueryFunc = (commandID: string, ...params: any[]) => PromiseType; /** * 数据获取器接口 */ export interface DataFetcher extends Config { /** * 数据查询方法 */ dataQuery?: DataQueryFunc; } /** * 远程数据获取器 */ export declare class RemoteDataFetcher extends Addon implements DataFetcher { serverUrl?: string; serviceName?: string; dataQuery?: DataQueryFunc; } /** * 本地数据获取器 */ export declare class LocalDataFetcher implements DataFetcher { dataSet?: Dictionary; dataQuery?: DataQueryFunc; } export declare class OptionSwitcher implements DataFetcher { options?: Dictionary; currentOptions: Dictionary; dataQuery?: DataQueryFunc; } export declare abstract class DataSource extends Addon { protected stateMachine?: AsyncCallStateMachine; protected abstract onGetStateMachine?(): AsyncCallStateMachine | undefined; /** * 状态机 */ getStateMachine?: (() => AsyncCallStateMachine | undefined) | undefined; } export declare class SimpleDataSource extends DataSource { value?: any; /** * 状态机 */ onGetStateMachine?: (() => AsyncCallStateMachine) | undefined; } export declare class FetcherDataSource extends DataSource { dataFetcher?: DataFetcher; value?: any; /** * 状态机 */ onGetStateMachine?: (() => AsyncCallStateMachine | undefined) | undefined; } export declare class FunctionDataSource

extends DataSource { calFunction?: string; /** * 状态机 */ onGetStateMachine?: (() => AsyncCallStateMachine) | undefined; }