import { ArrayIterationNode, AssignmentNode, GeneratorAstNode, ObjectIterationNode, TemplateRootNode, ScopedBlockNode, ParameterNode, IfStatementNode } from "./ast"; import { ProgramNode } from "../ngExpression/ast"; export declare abstract class BaseWalker { protected abstract walkArrayIterationNode(node: ArrayIterationNode): void; protected abstract walkAssignmentNode(node: AssignmentNode): void; protected abstract walkIfStatementNode(node: IfStatementNode): void; protected abstract walkObjectIterationNode(node: ObjectIterationNode): void; protected abstract walkParameterNode(node: ParameterNode): void; protected abstract walkScopedBlockNode(node: ScopedBlockNode): void; protected abstract walkTemplateRootNode(node: TemplateRootNode): void; protected dispatchAll(nodes: GeneratorAstNode[]): void; protected dispatch(node: GeneratorAstNode): void; } export declare class SkippingWalker extends BaseWalker { protected walkArrayIterationNode(node: ArrayIterationNode): void; protected walkAssignmentNode(_node: AssignmentNode): void; protected walkIfStatementNode(node: IfStatementNode): void; protected walkObjectIterationNode(node: ObjectIterationNode): void; protected walkParameterNode(_node: ParameterNode): void; protected walkScopedBlockNode(node: ScopedBlockNode): void; protected walkTemplateRootNode(node: TemplateRootNode): void; } export declare class TypeScriptGenerator extends SkippingWalker { protected counters: { scopes: number; expressions: number; blocks: number; }; protected output: string; protected indentLevel: number; protected indentString: string; protected localsStack: Set[]; protected scopeNumberStack: number[]; protected writeLine(value: string): void; protected pushLocalsScope(): void; protected popLocalsScope(): void; protected addLocal(name: string): void; protected formatExpression(expression: ProgramNode): string; protected walkArrayIterationNode(node: ArrayIterationNode): void; protected walkAssignmentNode(node: AssignmentNode): void; protected walkIfStatementNode(node: IfStatementNode): void; protected walkObjectIterationNode(node: ObjectIterationNode): void; protected walkParameterNode(node: ParameterNode): void; protected walkScopedBlockNode(node: ScopedBlockNode): void; generate(node: GeneratorAstNode): string; } export declare function generateTypeScript(node: GeneratorAstNode): string;