import type { EvaluationResult } from './contracts/evaluation-result'; import { type EnforcerEvidenceManifest } from '../domain/violation'; import { type CodeownersRule } from '../domain/codeowners'; import { type OwnershipEntry } from '../domain/ownership'; import { type IWaiverStore } from '../domain/waiver'; export declare const DRIFT_GATE_BLOCK_EXIT_CODE = 1; export declare const DRIFT_GATE_PASS_EXIT_CODE = 0; export declare const DRIFT_GATE_SOURCE = "drift-gate"; export interface DriftCitation { readonly ref: string; readonly isAdr: boolean; readonly ruleId: string; readonly owner?: string; readonly file: string; readonly message: string; readonly fingerprint: string; readonly complianceControls?: readonly string[]; } export interface DriftWaivedFinding { readonly fingerprint: string; readonly ruleId: string; readonly waiverRef: string; readonly waiverVersion: number; readonly expiresAt: string; } export interface DriftGateDecision { readonly blocked: boolean; readonly exitCode: number; readonly citations: readonly DriftCitation[]; readonly waived: readonly DriftWaivedFinding[]; readonly unmatchedWaivers: readonly string[]; readonly prCommentBody: string; readonly evidence: EnforcerEvidenceManifest; } export interface DriftGateInput { readonly result: EvaluationResult; readonly codeowners?: readonly CodeownersRule[]; readonly ownership?: readonly OwnershipEntry[]; readonly waivers?: IWaiverStore; readonly now?: string; readonly source?: string; } export declare function evaluateDriftGate(input: DriftGateInput): DriftGateDecision; export interface ChecksPublishResult { readonly channel: string; readonly conclusion: 'success' | 'failure'; readonly body: string; readonly exitCode: number; readonly url?: string; } export interface IChecksPublisher { publish(decision: DriftGateDecision): Promise; } export declare class PrCommentFallbackPublisher implements IChecksPublisher { publish(decision: DriftGateDecision): Promise; }