import { AbstractScannerFactory } from '../scanner.js'; import { Aggregator } from './../aggregation.js'; import { Operation } from './searchop.js'; import { SearchStateBuilder, SearchStateFactory } from './searchstate.js'; export declare abstract class StateFactory { abstract apply(builder: SearchStateBuilder): SearchStateBuilder; abstract stateFactoryType(): string; abstract typeID(): string; } export interface TableBuilder { build(): Map; } export declare class AggregateStateFactory extends StateFactory { key: string; aggregation: Aggregator; constructor(key: string, aggregation: Aggregator); typeID(): string; stateFactoryType(): string; apply(stateBuilder: SearchStateBuilder): SearchStateBuilder; } export declare class InheritedStateFactory extends StateFactory { defineStateFactory: DefineStateFactory; constructor(defineStateFactory: DefineStateFactory); typeID(): string; stateFactoryType(): string; apply(stateBuilder: SearchStateBuilder): SearchStateBuilder; } export declare class DefineStateFactory extends StateFactory implements TableBuilder { transitions: StateFactory[]; indexed: Map>; inherit: boolean; assignedname: string; name: string; constructor(name: string, ...transitions: StateFactory[]); access(typeDescriptions: { type: string; name?: string; }): StateFactory[]; substate(...names: string[]): DefineStateFactory; typeID(): string; stateFactoryType(): string; apply(parentStateBuilder?: SearchStateBuilder): SearchStateBuilder; load(substate: string): DefineStateFactory; build(): Map; } export declare class TokenStateFactory extends StateFactory { name: string; constructor(name: string); typeID(): string; stateFactoryType(): string; apply(stateBuilder: SearchStateBuilder): SearchStateBuilder; } export declare class TransitionStateFactory extends StateFactory { lookaheads: { bound: 'FROM' | 'AFTER'; scannerFactory: AbstractScannerFactory; labels: [string, Aggregator][]; }[]; operations: Operation[]; constructor(lookaheads: { bound: 'FROM' | 'AFTER'; scannerFactory: AbstractScannerFactory; labels: [string, Aggregator][]; }[], ...operations: Operation[]); typeID(): string; stateFactoryType(): string; apply(builder: SearchStateBuilder): SearchStateBuilder; } export declare class StartStateFactory extends StateFactory { transition: TransitionLookahead; constructor(transition: TransitionLookahead); typeID(): string; stateFactoryType(): string; apply(builder: SearchStateBuilder): SearchStateBuilder; } export declare class TransitionLookahead { transitions: { bound: 'FROM' | 'AFTER'; scannerFactory: AbstractScannerFactory; labels: [string, Aggregator][]; }[]; constructor(transitions: { bound: 'FROM' | 'AFTER'; scannerFactory: AbstractScannerFactory; labels: [string, Aggregator][]; }[]); label(key: any, val: any): this; from(sym: AbstractScannerFactory | string): this; after(sym: AbstractScannerFactory | string): this; push(name: string): TransitionStateFactory; terminate(num?: number): TransitionStateFactory; goto(name: string): TransitionStateFactory; } //# sourceMappingURL=searchbuilder.d.ts.map