import type { LinkMethod, PrCandidate } from '@generacy-ai/cockpit'; import type { FailingCheck } from './required-checks.js'; export type { LinkMethod, PrCandidate } from '@generacy-ai/cockpit'; export type RedReason = 'checks-failing' | 'missing-label' | 'unresolved' | 'pr-is-draft' | 'ambiguous-resolution' | 'pr-flag-linkage-refused' | 'pr-flag-closed-unmerged' | 'pr-number'; /** FR-006a — sub-kind for `pr-flag-linkage-refused` refusals. */ export type PrFlagLinkageKind = 'empty-refs' | 'mismatch'; export interface IssueRefWithState { owner: string; repo: string; number: number; state?: 'OPEN' | 'CLOSED'; stateReason?: string | null; } export interface FailingCheckPayload { status: 'red'; reason: RedReason; pr: { number: number; url: string; linkMethod?: LinkMethod; } | null; candidates?: PrCandidate[]; linkMethod?: LinkMethod; failingChecks: FailingCheck[]; issue?: IssueRefWithState; /** FR-006a — sub-kind for `pr-flag-linkage-refused` refusals. */ kind?: PrFlagLinkageKind; /** Human-readable remediation string for pr-flag refusals. */ message?: string; /** #928 — human-readable remediation string for `reason: 'pr-number'`. */ hint?: string; } export interface BuildFailingCheckInput { reason: RedReason; pr: { number: number; url: string; linkMethod?: LinkMethod; } | null; candidates?: PrCandidate[]; linkMethod?: LinkMethod; failingChecks?: FailingCheck[]; issue?: IssueRefWithState; /** Only for `pr-flag-linkage-refused`. */ kind?: PrFlagLinkageKind; /** Only for `pr-flag-linkage-refused` and `pr-flag-closed-unmerged`. */ message?: string; /** #928 — required for `reason: 'pr-number'`. Guidance copy for the caller. */ hint?: string; } export declare function buildFailingCheckPayload(input: BuildFailingCheckInput): FailingCheckPayload; export declare function serializeFailingCheckJson(payload: FailingCheckPayload): string; //# sourceMappingURL=failing-check-json.d.ts.map