import { ISchemaAny } from '@ulixee/schema'; import StringSchema from '@ulixee/schema/lib/StringSchema'; import DateSchema from '@ulixee/schema/lib/DateSchema'; import Extractor from './Extractor'; import IExtractorSchema, { ISchemaRecordType } from '../interfaces/IExtractorSchema'; import { IExtractorPluginConstructor } from '../interfaces/IExtractorPluginStatics'; import IExtractorContext from '../interfaces/IExtractorContext'; import ICrawlerComponents from '../interfaces/ICrawlerComponents'; import ICrawlerOutputSchema, { CrawlerOutputSchema } from '../interfaces/ICrawlerOutputSchema'; import Table from './Table'; import DatastoreInternal from './DatastoreInternal'; export default class Crawler = IExtractorSchema, TFinalInput extends ISchemaRecordType & typeof CrawlerInputSchema = TDisableCache extends true ? typeof CrawlerInputSchema & TProvidedSchema['input'] : TProvidedSchema extends { input: Record; } ? typeof CrawlerInputSchema & TProvidedSchema['input'] : typeof CrawlerInputSchema & Record, TSchema extends IExtractorSchema = IExtractorSchema, TPlugin1 extends IExtractorPluginConstructor = IExtractorPluginConstructor, TPlugin2 extends IExtractorPluginConstructor = IExtractorPluginConstructor, TPlugin3 extends IExtractorPluginConstructor = IExtractorPluginConstructor, TContext extends Omit, 'Output' | 'outputs'> & TPlugin1['contextAddons'] & TPlugin2['contextAddons'] & TPlugin3['contextAddons'] = Omit, 'Output' | 'outputs'> & TPlugin1['contextAddons'] & TPlugin2['contextAddons'] & TPlugin3['contextAddons']> extends Extractor { static defaultMaxTimeInCache: number; extractorType: string; cache?: Table<{ input: StringSchema; sessionId: StringSchema; crawler: StringSchema; version: StringSchema; runTime: DateSchema; }>; private crawlerComponents; constructor(components: (ICrawlerComponents & TPlugin1['componentAddons'] & TPlugin2['componentAddons'] & TPlugin3['componentAddons']) | (ICrawlerComponents & TPlugin1['componentAddons'] & TPlugin2['componentAddons'] & TPlugin3['componentAddons'])['run'], ...plugins: [plugin1?: TPlugin1, plugin2?: TPlugin2, plugin3?: TPlugin3]); attachToDatastore(datastoreInternal: DatastoreInternal, extractorName: string): void; protected runWrapper(originalRun: ICrawlerComponents['run'], context: TContext): Promise; protected saveToCache(input: TContext['input'], output: ICrawlerOutputSchema, onCacheUpdated?: TContext['onCacheUpdated']): Promise<{ didCache?: boolean; replacedSessionId?: string; }>; protected findCached(input: TContext['input']): Promise; protected getSerializedInput(input: TContext['input']): string; } declare const CrawlerInputSchema: { maxTimeInCache: import("@ulixee/schema/lib/NumberSchema").default; }; export {};