import { Block } from "../../Block";
import { Definition } from "./Definition";
import { Scope } from "./Scope";
export declare class JavascriptScopeAnalyzer {
    currentScope: Scope;
    currentDefinition: Definition;
    scheduledAssinments: Function[];
    scheduledVarDefCheck: Function[];
    scheduledNewExpression: Function[];
    definitionMap: any;
    private depth;
    private applyingScheduled;
    constructor();
    reset(): void;
    analyze(block: Block, parnetScope?: Scope): any;
    private analyzeStatement;
    private analyzeWhileStatement;
    private analyzeTryCatch;
    private analyzeThrowStatement;
    private analyzeSwitchCase;
    private analyzeReturn;
    private analyzeIfStatement;
    private analyzeForStatement;
    private analyzeExported;
    private analyzeDoWhileStatement;
    private analyzeDeleteStatement;
    private setDefinition;
    private setScope;
    private setState;
    private analyzeImport;
    private analyzeVariable;
    private analyzeExpression;
    private analyzeUnexpect;
    private analyzeBracketEnwraped;
    private analyzeUnary;
    private analyzeTernaryExression;
    private analyzeTypeOf;
    private analyzeVoid;
    private analyzeNewExpression;
    private analyzeTemplate;
    private analyzeMemberExpression;
    private analyzeCallExpression;
    private analyzeBinary;
    private analyzeArray;
    private analyzeAssigment;
    private analyzeObject;
    private analyzeFunExpression;
    private analyzeFunctionDeclaration;
    private analyzeClassDeclaration;
}
