export declare class ScopeManager {
    private scopes;
    private scopeTypes;
    private scopeCounts;
    private contextBoundVars;
    private arrayPatternElements;
    private rootParams;
    private localSeriesVars;
    private varKinds;
    private loopVars;
    private loopVarNames;
    private paramIdCounter;
    private cacheIdCounter;
    private tempVarCounter;
    private taCallIdCounter;
    private userCallIdCounter;
    private hoistingStack;
    private suppressHoisting;
    get nextParamIdArg(): any;
    get nextCacheIdArg(): any;
    getNextTACallId(): any;
    getNextUserCallId(): any;
    constructor();
    pushScope(type: string): void;
    popScope(): void;
    getCurrentScopeType(): string;
    getCurrentScopeCount(): number;
    addLocalSeriesVar(name: string): void;
    isLocalSeriesVar(name: string): boolean;
    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;
    enterHoistingScope(): void;
    exitHoistingScope(): any[];
    addHoistedStatement(stmt: any): void;
    setSuppressHoisting(suppress: boolean): void;
    shouldSuppressHoisting(): boolean;
    generateParamId(): string;
}
export default ScopeManager;
