import { ExecutionConfig, Context, OpConfig, APIConfig, WorkerContext } from '../interfaces'; import FetcherCore from './core/fetcher-core'; import SchemaCore, { OpType } from './core/schema-core'; import SlicerCore from './core/slicer-core'; import APICore from './core/api-core'; import ProcessorCore from './core/processor-core'; import Slicer from './slicer'; import ParallelSlicer from './parallel-slicer'; import OperationAPI from './operation-api'; export declare type APICoreConstructor = { new (context: WorkerContext, apiConfig: APIConfig, executionConfig: ExecutionConfig): U; }; export declare type OperationCoreConstructor = { new (context: WorkerContext, opConfig: OpConfig & T, executionConfig: ExecutionConfig): U; }; export declare type SlicerCoreConstructor = { new (context: WorkerContext, opConfig: OpConfig & T, executionConfig: ExecutionConfig): U; }; export declare type SchemaConstructor = { type(): string; new (context: Context, opType?: OpType): SchemaCore; }; export declare type OperationAPIConstructor = APICoreConstructor; export declare type ObserverConstructor = APICoreConstructor; export declare type APIConstructor = APICoreConstructor; export declare type SlicerConstructor = SlicerCoreConstructor; export declare type SingleSlicerConstructor = SlicerCoreConstructor; export declare type ParallelSlicerConstructor = SlicerCoreConstructor; export declare type FetcherConstructor = OperationCoreConstructor; export declare type ProcessorConstructor = OperationCoreConstructor; export declare type CoreOperation = FetcherCore | SlicerCore | ProcessorCore; export interface OperationModule { Schema: SchemaConstructor; API?: OperationAPIConstructor; } export interface SchemaModule { Schema: SchemaConstructor; } export interface APIModule extends SchemaModule { API: OperationAPIConstructor | ObserverConstructor; type: 'api' | 'observer'; } export interface ReaderModule extends OperationModule { Slicer: SlicerConstructor; Fetcher: FetcherConstructor; } export interface ProcessorModule extends OperationModule { Processor: ProcessorConstructor; }