import type { SourceAnchor, SymbolValue } from "../../../core/domain/facts/anchor.js"; import type { Destination, OutboundOperationFact } from "../../../core/domain/facts/fact.js"; import type { ModuleIdMapping } from "../../../core/ports/config.port.js"; import type { Ancestor } from "../index/python/hierarchy.js"; /** * The module a type belongs to. The mapping is declared against the type the * library publishes, so every local subclass of it carries the same identity * without being named in the configuration. */ export declare function moduleIdOfAncestry(ancestors: readonly Ancestor[], mappings: readonly ModuleIdMapping[]): string | null; /** The declaration anchor of a member, taken from the ancestor that declares it. */ export declare function memberAnchor(ancestors: readonly Ancestor[], member: string): SourceAnchor | null; export declare function symbolOf(anchor: SourceAnchor, displayName: string): SymbolValue; /** * A destination the library itself does not bind belongs to whoever configures * the library, so on a half carrying a module id an exhausted ladder is typed * by that fact rather than by how the ladder ran out. */ export declare function inLibraryDestinations(destinations: readonly Destination[]): readonly Destination[]; /** * Whether every unresolved required field of a fact names an operation body * outside the unit. Such a half is the linker's to complete, so it is counted * apart from the sites this run could have resolved and did not. */ export declare function isDeferredToLinker(fact: OutboundOperationFact): boolean;