UNPKG

2.28 kBTypeScriptView Raw
1import { ExecutionConfig, Context, OpConfig, APIConfig, WorkerContext } from '../interfaces';
2import FetcherCore from './core/fetcher-core';
3import SchemaCore, { OpType } from './core/schema-core';
4import SlicerCore from './core/slicer-core';
5import APICore from './core/api-core';
6import ProcessorCore from './core/processor-core';
7import Slicer from './slicer';
8import ParallelSlicer from './parallel-slicer';
9import OperationAPI from './operation-api';
10export declare type APICoreConstructor<U> = {
11 new (context: WorkerContext, apiConfig: APIConfig, executionConfig: ExecutionConfig): U;
12};
13export declare type OperationCoreConstructor<U> = {
14 new <T = OpConfig>(context: WorkerContext, opConfig: OpConfig & T, executionConfig: ExecutionConfig): U;
15};
16export declare type SlicerCoreConstructor<U> = {
17 new <T = OpConfig>(context: WorkerContext, opConfig: OpConfig & T, executionConfig: ExecutionConfig): U;
18};
19export declare type SchemaConstructor<T = any> = {
20 type(): string;
21 new (context: Context, opType?: OpType): SchemaCore<T>;
22};
23export declare type OperationAPIConstructor = APICoreConstructor<OperationAPI>;
24export declare type ObserverConstructor = APICoreConstructor<APICore>;
25export declare type APIConstructor = APICoreConstructor<APICore>;
26export declare type SlicerConstructor = SlicerCoreConstructor<SlicerCore>;
27export declare type SingleSlicerConstructor = SlicerCoreConstructor<Slicer>;
28export declare type ParallelSlicerConstructor = SlicerCoreConstructor<ParallelSlicer>;
29export declare type FetcherConstructor = OperationCoreConstructor<FetcherCore>;
30export declare type ProcessorConstructor = OperationCoreConstructor<ProcessorCore>;
31export declare type CoreOperation = FetcherCore | SlicerCore | ProcessorCore;
32export interface OperationModule {
33 Schema: SchemaConstructor;
34 API?: OperationAPIConstructor;
35}
36export interface SchemaModule {
37 Schema: SchemaConstructor;
38}
39export interface APIModule extends SchemaModule {
40 API: OperationAPIConstructor | ObserverConstructor;
41 type: 'api' | 'observer';
42}
43export interface ReaderModule extends OperationModule {
44 Slicer: SlicerConstructor;
45 Fetcher: FetcherConstructor;
46}
47export interface ProcessorModule extends OperationModule {
48 Processor: ProcessorConstructor;
49}