import { ParserState, BindingKind, Origin, Context } from './common'; import { Errors } from '../errors'; export interface ScopeState { parent: ScopeState | undefined; type: ScopeKind; declared: string[]; scopeError?: ScopeError | null; } export interface ScopeError { type: Errors; params: string[]; index: number; line: number; column: number; } export declare const enum ScopeKind { None = 0, Block = 2, CatchIdentifier = 4, CatchBlock = 32, FunctionBody = 64, FunctionRoot = 128, ArrowParams = 512 } export declare function createNestedBlockScope(type: ScopeKind): ScopeState; export declare function createTopLevelScope(): ScopeState; export declare function createParentScope(parent: ScopeState, type: ScopeKind): ScopeState; export declare function createArrowScope(): ScopeState; export declare function addVarOrBlock(parser: ParserState, context: Context, scope: ScopeState, name: string, kind: BindingKind, origin: Origin): void; export declare function declareUnboundVariable(parser: ParserState, name: string): void; export declare function addBindingToExports(parser: ParserState, name: string): void; export declare function addVarName(parser: ParserState, context: Context, curScope: ScopeState, name: string, kind: BindingKind): void; export declare function addBlockName(parser: ParserState, context: Context, scope: any, name: string, kind: BindingKind, origin: Origin): void; //# sourceMappingURL=scope.d.ts.map