/** Public occurrence-precise / body-twin call views over the canonical graph. */ import { type Result } from '@opensip-cli/core'; import { type CallEdgeEvidence, type GraphSourceFilter, type GraphSymbolRef } from './query-contracts.js'; import { type SourceRoleMatcher } from './source-filter.js'; import type { GraphReadError } from './types.js'; import type { Catalog, Indexes } from '../types.js'; /** Traversal, identity, and source-selection options for an occurrence call view. */ export interface OccurrenceCallViewQuery { readonly filter: GraphSourceFilter; readonly identity: 'occurrence' | 'body-twin-union'; readonly startSymbolId?: string; readonly goalSymbolId?: string; readonly direction?: 'callers' | 'callees' | 'both'; readonly depth?: number; readonly maxNodes?: number; } /** Bounded unresolved-call evidence attributed to its owning occurrence. */ export interface UnresolvedCallSummary { readonly ownerSymbolId: string; readonly resolution: string; readonly confidence: string; readonly callSite: { readonly filePath: string; readonly line: number; readonly column: number; }; readonly targetHashes: readonly string[]; readonly totalTargetHashes: number; } /** Occurrence-precise call topology with bounded evidence and coverage metadata. */ export interface OccurrenceCallView { readonly nodes: readonly GraphSymbolRef[]; readonly edges: readonly CallEdgeEvidence[]; readonly forward: ReadonlyMap; readonly reverse: ReadonlyMap; readonly members: ReadonlyMap; readonly totalMembership: number; readonly counts: { readonly includedOccurrences: number; readonly excludedOccurrences: number; readonly includedEdges: number; readonly excludedEdges: number; readonly countScope: 'visited'; }; readonly unresolved: readonly UnresolvedCallSummary[]; readonly totalUnresolved: number; readonly unresolvedCounts: readonly { readonly resolution: string; readonly confidence: string; readonly count: number; }[]; readonly unresolvedAttribution: 'owner-only'; readonly coverage: { readonly complete: boolean; readonly truncated: boolean; readonly reasons: readonly string[]; }; } /** Build an occurrence or body-twin-union call view from canonical read indexes. */ export declare function buildOccurrenceCallView(_catalog: Catalog, indexes: Indexes, query: OccurrenceCallViewQuery, matcher: SourceRoleMatcher): Result; //# sourceMappingURL=occurrence-call-view.d.ts.map