import { ExtractSchemaType } from '@ulixee/schema'; import { IExtractorPluginConstructor } from '../interfaces/IExtractorPluginStatics'; import IExtractorContext from '../interfaces/IExtractorContext'; import IExtractorSchema from '../interfaces/IExtractorSchema'; import IExtractorRunOptions from '../interfaces/IExtractorRunOptions'; import IExtractorComponents from '../interfaces/IExtractorComponents'; import DatastoreInternal, { IDatastoreBinding, IQueryInternalCallbacks } from './DatastoreInternal'; import ResultIterable from './ResultIterable'; export default class Extractor = IExtractorPluginConstructor, TPlugin2 extends IExtractorPluginConstructor = IExtractorPluginConstructor, TPlugin3 extends IExtractorPluginConstructor = IExtractorPluginConstructor, TContext extends IExtractorContext = IExtractorContext & TPlugin1['contextAddons'] & TPlugin2['contextAddons'] & TPlugin3['contextAddons'], TOutput extends ExtractSchemaType = ExtractSchemaType, TRunArgs extends IExtractorRunOptions & TPlugin1['runArgAddons'] & TPlugin2['runArgAddons'] & TPlugin3['runArgAddons'] = IExtractorRunOptions & TPlugin1['runArgAddons'] & TPlugin2['runArgAddons'] & TPlugin3['runArgAddons']> { #private; readonly schemaType: { input: ExtractSchemaType; output: ExtractSchemaType; }; readonly runArgsType: TRunArgs; extractorType: string; corePlugins: { [name: string]: string; }; pluginClasses: IExtractorPluginConstructor[]; successCount: number; errorCount: number; basePrice: bigint; get schema(): TSchema; get name(): string; get description(): string | undefined; protected get datastoreInternal(): DatastoreInternal; protected readonly components: IExtractorComponents & TPlugin1['componentAddons'] & TPlugin2['componentAddons'] & TPlugin3['componentAddons']; constructor(components: (IExtractorComponents | IExtractorComponents['run']) & TPlugin1['componentAddons'] & TPlugin2['componentAddons'] & TPlugin3['componentAddons'], ...plugins: [plugin1?: TPlugin1, plugin2?: TPlugin2, plugin3?: TPlugin3]); runInternal(options: TRunArgs, callbacks?: IQueryInternalCallbacks): ResultIterable>; queryInternal(sql: string, boundValues?: any[], options?: TRunArgs): Promise; attachToDatastore(datastoreInternal: DatastoreInternal, extractorName: string): void; bind(config: IDatastoreBinding): Promise; }