import * as Shift from 'shift-ast'; import ProxyFunction from './proxyFunction'; export default class Scope { node: Shift.Node; parent?: Scope; children: Map; proxyFunctions: Map; /** * Creates a new scope. * @param node The node that created the scope. * @param parent The parent scope (optional). */ constructor(node: Shift.Node, parent?: Scope); /** * Searches for a proxy function by name. * @param name The name of the proxy function. */ findProxyFunction(name: string): ProxyFunction | null; /** * Adds a proxy function. * @param proxyFunction The proxy function to be added. */ addProxyFunction(proxyFunction: ProxyFunction): void; /** * Adds an alias for a proxy function. * @param func The proxy function. * @param name The alias. */ addAlias(func: ProxyFunction, name: string): void; }