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;
}