import { Closure } from './vendor/generics/closure.js'; import { Range } from './range.js'; import { SearchStateFactory } from './scanners/searchstate.js'; import { Signal } from './signal.js'; import { Logs } from './vendor/generics/log.js'; export interface Scanner { id: string; shift: (signal: Signal) => Signal; complete(): boolean; configurations?: any; print(tabs?: number): string; } type MapperOf = { (input: Input): Output; }; export type FactoryBuilder = { name: string; buildFactory(repository: Repository, names?: Set): ScannerFactory; }; export declare class Repository { map: Map; logger: Logs; constructor(preloaded?: Map); log(...data: any[]): void; set(id: string, searchState: SearchStateFactory): void; get(id: string, state?: SearchStateFactory): SearchStateFactory; load(id: string): ScannerFactory; } export type Lookahead = string | AbstractScannerFactory; export interface ScannerFactory extends MapperOf> { id: string; type: string; configurations: ((configs: Scanner) => Scanner)[]; toJSON?(): any; } export declare class AbstractScannerFactory extends Closure { id: string; type: string; configurations: ((configs: Scanner) => Scanner)[]; constructor(id: string, type: string, fnc: MapperOf>); static create(id: string, type: string, fnc: MapperOf>): ScannerFactory; toJSON?(): string; } export {}; //# sourceMappingURL=scanner.d.ts.map