export declare class ScopeManager {
    private scopes;
    private scopeTypes;
    private scopeCounts;
    private contextBoundVars;
    private arrayPatternElements;
    private rootParams;
    private varKinds;
    private loopVars;
    private loopVarNames;
    private paramIdCounter;
    private cacheIdCounter;
    private tempVarCounter;
    private taCallIdCounter;
    get nextParamIdArg(): any;
    get nextCacheIdArg(): any;
    getNextTACallId(): any;
    constructor();
    pushScope(type: string): void;
    popScope(): void;
    getCurrentScopeType(): string;
    getCurrentScopeCount(): number;
    addContextBoundVar(name: string, isRootParam?: boolean): void;
    removeContextBoundVar(name: any): void;
    addArrayPatternElement(name: string): void;
    isContextBound(name: string): boolean;
    isArrayPatternElement(name: string): boolean;
    isRootParam(name: string): boolean;
    addLoopVariable(originalName: string, transformedName: string): void;
    getLoopVariableName(name: string): string | undefined;
    isLoopVariable(name: string): boolean;
    addVariable(name: string, kind: string): string;
    getVariable(name: string): [string, string];
    generateTempVar(): string;
}
export default ScopeManager;
