import { type FinalizedSignals } from './apply-suppressions.js'; import { GraphProfileBuilder } from './profile.js'; import type { GraphCommandOptions } from './graph-options.js'; import type { GraphRunOutcome } from './graph-run-outcome.js'; import type { RunGraphResult } from './orchestrate.js'; import type { ToolCliContext } from '@opensip-cli/core'; /** Create a profile builder when `--profile-output` is set. */ export declare function createProfileBuilder(opts: GraphCommandOptions, startedAt: string): GraphProfileBuilder | undefined; /** Write the timing profile when `--profile-output` was requested. */ export declare function writeProfileIfRequested(opts: GraphCommandOptions, profile: GraphProfileBuilder | undefined): void; /** * Dispatch a completed graph run to its output mode and return its truthful * evidence for signal delivery and session persistence. */ export declare function dispatchGraphResult(opts: GraphCommandOptions, rawResult: RunGraphResult, cli: ToolCliContext, startedAt: string, suppressionRoot: string): Promise; /** * Deliver an already-waived run to its output mode (gate / catalog-json / * render) and BUILD the generic-session contribution the host run plane * persists (host-owned-run-timing Phase 3 — graph never writes the row itself). * Split out of {@link dispatchGraphResult} * so the multi-path path — which must waive each path's signals against ITS * OWN root before aggregating (the roots differ) — can aggregate the kept * signals and deliver once, without a second (wrong-root) suppression pass. * * The contribution is built HERE, where the branded {@link FinalizedSignals} * is in scope, so the dashboard history can only ever carry post-waiver * findings (the branding guard is not lost across the return boundary). */ export declare function deliverGraphResult(opts: GraphCommandOptions, result: RunGraphResult, cli: ToolCliContext, startedAt: string, finalized: FinalizedSignals): Promise; //# sourceMappingURL=graph-result-delivery.d.ts.map