import * as t from '@rekajs/types'; import { DisposableComputation } from './computation'; import { Reka } from './reka'; import { GetIdentifiableOpts, Scope } from './scope'; export declare class Resolver { readonly reka: Reka; scopeRegistry: Map; identifiersToIdentifiableDistance: Map; identifiersToIdentifiable: Map; nodeToScope: Map; componentToSlotsMap: Map>>; private scope; private cachedComponentResolver; private cachedTemplateResolver; rootResolverComputation: DisposableComputation; constructor(reka: Reka); getDistance(identifier: t.Identifier): number | undefined; getIdentifiablesAtNode(node: t.ASTNode, opts?: GetIdentifiableOpts): import("./interfaces").IdentifiableWithScope[]; getIdentifiableFromIdentifier(identifier: t.Identifier): t.Identifiable | null; removeDistance(identifier: t.Identifier): void; private setDistance; private bindIdentifierToIdentifiable; private bindNodeToScope; private bindSlotToComponent; private unbindSlotToComponent; unbindIdentifierToIdentifiable(identifier: t.Identifier): void; unbindNodeToScope(node: t.ASTNode): void; private resolveExpr; private resolveComponent; private resolveTemplate; private resolveVariable; private resolveProgram; resolve(): void; dispose(): void; cleanupDisposedNode(node: t.ASTNode): void; }