import { types } from '@babel/core'; declare type Identifier = types.Identifier; declare type Scope = Map>; export declare type ScopeId = number | 'global'; export declare type DeclareHandler = (identifier: Identifier) => void; export default class ScopeManager { private nextId; private readonly stack; private readonly map; private readonly handlers; private readonly declarations; private readonly global; constructor(); new(scopeId?: ScopeId): Scope; dispose(): Scope | undefined; declare(identifier: Identifier): void; addReference(identifier: Identifier): Identifier | undefined; whereIsDeclared(identifier: Identifier): ScopeId | undefined; isDeclared(name: string): boolean; getDeclaration(identifierOrName: Identifier | string): Identifier | undefined; addDeclareHandler(handler: DeclareHandler): () => void; } export {};