import { ICombinator, ParsingActionOwner } from '../../combinators/abstract'; import { Rule } from '../../rules/rule'; import { Grammar } from '../../grammar'; import { RuleComponent } from '../../abstract/component'; export declare type PeggificationMachineGenerator = (currentContext: SerializationContext) => SerializationContext | Generator; export declare type PeggificationMachine = Map; declare type ContextParameters = { parent?: SerializationContext; grammar: Grammar; component?: RuleComponent; machine?: PeggificationMachine; serializer?: MutatorMap; }; export declare type Mutator = (pattern: ICombinator | any, context: SerializationContext) => Promise; export interface MutatorMap extends Map> { normalize(component: Rule | RuleComponent | ParsingActionOwner, parentContext: SerializationContext, fragment: T): Promise; } export declare class ParsingScene { protected _openContexts: Set>; get openContexts(): Set; open(context: SerializationContext): this; close(context: SerializationContext): this; } export declare class SerializationContext { private readonly _parentContext; private readonly _component; private readonly _nestingLevel; private readonly _scene; private readonly _serializers; private readonly _grammar; constructor({ parent, component, serializer, grammar }: ContextParameters); get grammar(): Grammar; get component(): RuleComponent | undefined; get serializers(): MutatorMap; get scene(): ParsingScene; get nestingLevel(): number; get parentContext(): SerializationContext | undefined; enter(parameters: Partial): SerializationContext; exit({}: { component: RuleComponent; closeParents?: boolean; }): SerializationContext; } export {};