import { AstNode } from "../AstNode";
import { Context } from "./Context";
import { Definition } from "./Definition";
export declare class Scope {
    parent?: Scope;
    definitions: Array<Definition>;
    definitionsMap: any;
    context: Context;
    functionScope: boolean;
    exports: any;
    id: string;
    unusedDefination: Map<AstNode, Definition>;
    UndeclaredVariables: Set<any>;
    constructor(parent?: Scope);
    addDefinition(definition: Definition): void;
    addDefinitions(definitions: Definition[]): void;
    getDefinition(identifier: string): any;
    deleteUnuse(definition: Definition): void;
    addUnuse(definition: Definition): void;
    isUnuse(definition: Definition): boolean;
    fullMatchDefinition(text: string): any;
    matchParentDefinitions(text: string, near?: number): any;
    fullMatchParentDefinitions(text: string): any;
    matchOwnDefinitions(text: string, near?: number): any;
    matchDefinitions(text: string, near?: number): any;
}
