/**
 * Processes → microcall context (TODO #51 phase 2C, engines 6.32.0+).
 *
 * Phase 2A + 2B closed gaps 1+3 of Dom Williams's 2026-05-06 audit
 * (IMPLEMENTS → advertises, Zod schemas → entity attributes). This
 * module closes gap 2: cross-entity Process flows.
 *
 * GitNexus extracts ~149 Process nodes from idle-meta — each is a
 * heuristic-labelled trace from an entry point (route handler, exported
 * function) through method calls to a terminal (response, throw, leaf
 * method). The orchestrator already loads them into `facts.processes`
 * (filtered to stepCount ≥ 3). What was missing: connecting each
 * process to the matching action stub so per-action microcalls receive
 * pre-grouped cross-method context.
 *
 * The microcall already gets a per-method `candidateSteps` timeline
 * (line-level walker output for the method body). Processes complement
 * that with the *outbound* call chain — which other entities/methods
 * this action invokes. Together they let the LLM emit far more accurate
 * `[call] OtherClass.method` step bullets without re-discovering the
 * call graph from raw source.
 */
import type { SpecVerseFacts } from '../analyse-prepass/index.js';
import type { SkeletonProvenance } from './skeleton-emitter.js';
/**
 * Parsed representation of a GitNexus symbol id.
 *
 * Examples:
 *   `Method:shared/services/src/AuthService.ts:AuthService.login#1`
 *     → { kind: 'Method', filePath: 'shared/services/src/AuthService.ts',
 *         className: 'AuthService', methodName: 'login', paramCount: 1 }
 *   `Function:shared/ui/src/contexts/AuthContext.tsx:AuthProvider`
 *     → { kind: 'Function', filePath: 'shared/ui/src/contexts/AuthContext.tsx',
 *         className: undefined, methodName: 'AuthProvider' }
 */
export interface ParsedSymbolId {
    kind: string;
    filePath: string;
    className: string | undefined;
    methodName: string;
    paramCount: number | undefined;
}
export declare function parseSymbolId(id: string): ParsedSymbolId | null;
/**
 * Format a single process's step timeline as a human-readable block.
 * Truncates very long process trails to keep prompt size bounded.
 */
export declare function formatProcess(process: NonNullable<SpecVerseFacts['processes']>[number], maxSteps?: number): string;
/**
 * Build a per-stub map of formatted process context. Keyed by
 * `${stub.candidateMethodRef.className}::${stub.candidateMethodRef.methodIndex}` —
 * the same key shape the orchestrator uses for `candidateStepsByMethodKey`,
 * so the consumer just plumbs the new map alongside.
 *
 * Only processes whose entry point OR terminal OR any step matches the
 * stub's source method are attached. Each stub gets at most `topN`
 * processes (sorted by stepCount descending — longer chains tend to
 * carry more information). When no processes match, the stub is absent
 * from the map and the orchestrator falls back to its empty default.
 */
export declare function buildProcessContextByMethodKey(opts: {
    processes: NonNullable<SpecVerseFacts['processes']> | undefined;
    actionStubs: SkeletonProvenance['actionStubs'];
    topN?: number;
}): Map<string, string>;
//# sourceMappingURL=processes-to-microcall-context.d.ts.map