/** File name (with `` suffix) for the per-request security findings delta. */ export declare const SECURITY_FINDINGS_SUFFIXED: (rid: string) => string; /** File name (legacy, no `` suffix) for the security findings artifact. */ export declare const SECURITY_FINDINGS_LEGACY = "security-findings.md"; /** File name (with `` suffix) for the per-request performance findings delta. */ export declare const PERFORMANCE_FINDINGS_SUFFIXED: (rid: string) => string; /** File name (legacy, no `` suffix) for the performance findings artifact. */ export declare const PERFORMANCE_FINDINGS_LEGACY = "performance-findings.md"; export interface ResolveFindingsPathResult { /** The resolved absolute path (suffixed preferred, legacy fallback). */ readonly path: string; /** `'suffixed' | 'legacy' | 'legacy-redirect'` — useful for Gate C warnings. */ readonly form: 'suffixed' | 'legacy' | 'legacy-redirect'; /** When the consumer was redirected from a legacy to a suffixed path, the * original legacy path. Otherwise null. */ readonly redirectedFrom: string | null; /** The rid that was used to resolve the suffixed path, if any. */ readonly rid: string | null; } /** * Resolve the security-findings artifact path. Preferred form is the * ``-suffixed path; legacy non-suffixed path is accepted as a * 1-minor-release back-compat fallback. * * When `rid` is provided and the suffixed form is missing, the legacy * form is reported (NOT the suffixed path) so the caller can decide to * log a warning. When `rid` is undefined, the legacy form is the * canonical target. */ export declare function resolveSecurityFindingsPath(args: { projectRoot: string; sessionId: string; rid?: string; }): ResolveFindingsPathResult; /** Resolve the performance-findings artifact path (mirror of `resolveSecurityFindingsPath`). */ export declare function resolvePerformanceFindingsPath(args: { projectRoot: string; sessionId: string; rid?: string; }): ResolveFindingsPathResult; /** * Lazy migration: rename a legacy non-suffixed QA artifact to the * suffixed form for the given rid. Idempotent — re-running is a no-op * once the suffixed form exists. * * Returns the resulting path. Callers (Gate C in `pipeline-verify-service.ts`) * log a warning when the legacy form is the one consumed. */ export declare function lazyMigrateLegacyFindings(args: { projectRoot: string; sessionId: string; rid: string; base: 'security-findings' | 'performance-findings'; legacyFile: string; suffixedFile: (rid: string) => string; }): { renamed: boolean; path: string; };