/**
 * CI Helper Utilities
 *
 * Shared helpers for the CI watch/fix loop and merge node:
 * - extractRunId: parse GitHub Actions run ID from URL
 * - handleCiTerminalFailure: update feature repo on CI failure
 * - buildCiExhaustedError: structured error for exhausted/timed-out loops
 */
import type { IFeatureRepository } from '../../../../../../application/ports/output/repositories/feature-repository.interface.js';
import { type CiFixRecord } from '../../../../../../domain/generated/output.js';
/**
 * Extract the numeric GitHub Actions run ID from a run URL.
 * Example: https://github.com/org/repo/actions/runs/12345 → "12345"
 */
export declare function extractRunId(runUrl: string): string | undefined;
/**
 * Update the feature repository to mark CI as failed before throwing.
 */
export declare function handleCiTerminalFailure(feature: Awaited<ReturnType<Pick<IFeatureRepository, 'findById'>['findById']>>, prUrl: string | null, prNumber: number | null, featureRepository: Pick<IFeatureRepository, 'findById' | 'update'>, messages: string[]): Promise<void>;
/**
 * Build a structured error message describing the CI fix loop outcome.
 */
export declare function buildCiExhaustedError(attempts: number, history: CiFixRecord[], reason: 'exhausted' | 'timeout'): Error;
//# sourceMappingURL=ci-helpers.d.ts.map