/** * Method resolution — the index the dispatcher queries on every call. * * Owns both the index's construction and its lookup contract: * - `buildMethodIndex` is called once at server startup. * - `resolveMethod` is called once per inbound call. * * Each method is indexed under its `BoundMethod.ref` * (`namespace.Owner.method.name`) and under a short alias `Owner.name`. * The short alias is only registered when it is unambiguous — two methods * whose owners live in different namespaces (e.g. class vs interface) and * share the same local name would collide, and we refuse to register the * ambiguous key rather than silently overwriting. * * Inbound names may arrive as `Path`, full `ref`, short alias, a tree path * `///`, or the typed colon-form MethodPath * `/:::` (what the kernel forwards when a * caller addresses the method in `:`-delimited form). All shapes normalize to * the same lookup key. */ import type { Path } from '@astrale-os/kernel-core'; import type { BoundMethod } from '@astrale-os/kernel-core/domain'; import type { AnyRemoteHandler } from '../method/single.js'; export type MethodIndex = Map>; export declare function buildMethodIndex(methods: BoundMethod[]): MethodIndex; export declare function resolveMethod(index: MethodIndex, name: Path | string): BoundMethod | null; //# sourceMappingURL=resolve.d.ts.map