import { Scope } from "./scope"; import { Variable } from "./variable"; import * as ESTree from "estree"; export interface ImplicitGlobal { pattern: ESTree.Identifier; node: ESTree.Node; } export declare class Reference { readonly identifier: ESTree.Identifier; readonly from: Scope; readonly flag: number; readonly maybeImplicitGlobal: ImplicitGlobal | null; static READ: number; static WRITE: number; static RW: number; static EXPORT: number; tainted: boolean; resolved: Variable | null; readonly writeExpr?: ESTree.Expression; readonly partial?: boolean; readonly init?: boolean; constructor(identifier: ESTree.Identifier, from: Scope, flag: number, writeExpr?: ESTree.Expression, maybeImplicitGlobal?: ImplicitGlobal | null, partial?: boolean, init?: boolean); readonly isStatic: boolean | null; readonly isWrite: boolean; readonly isRead: boolean; readonly isReadOnly: boolean; readonly isWriteOnly: boolean; readonly isReadWrite: boolean; readonly isExport: boolean; }