import type { CompletionEvidenceSignal, CompletionEvidenceToolSideEffect, VerificationCheck, WorkflowStepCompletionReason } from './types.js';
export type { VerificationCheck } from './types.js';
export interface VerificationResult {
    passed: boolean;
    completionReason?: WorkflowStepCompletionReason;
    error?: string;
}
export interface VerificationOptions {
    allowFailure?: boolean;
    completionMarkerFound?: boolean;
    cwd?: string;
}
export declare class WorkflowCompletionError extends Error {
    completionReason?: WorkflowStepCompletionReason;
    constructor(message: string, completionReason?: WorkflowStepCompletionReason);
}
export interface VerificationSideEffects {
    recordStepToolSideEffect?: (stepName: string, effect: Omit<CompletionEvidenceToolSideEffect, 'observedAt'> & {
        observedAt?: string;
    }) => void;
    getOrCreateStepEvidenceRecord?: (stepName: string) => {
        evidence: {
            coordinationSignals: CompletionEvidenceSignal[];
        };
    };
    log?: (message: string) => void;
}
export declare function runVerification(check: VerificationCheck, output: string, stepName: string, injectedTaskText?: string, options?: VerificationOptions, sideEffects?: VerificationSideEffects): VerificationResult;
export declare function stripInjectedTaskEcho(output: string, injectedTaskText?: string): string;
export declare function checkExitCode(_expectedExitCode: string): boolean;
export declare function checkOutputContains(output: string, token: string, injectedTaskText?: string): boolean;
/**
 * Returns the first GitHub PR URL found in {@link output}. When
 * {@link repoQualifier} is non-empty (format: `<owner>/<repo>`, case
 * insensitive), only URLs belonging to that repository are accepted.
 *
 * Use via `verification: { type: 'pr_url', value: 'owner/repo' }` to require
 * a step to publish a pull request before completing. The check exists so
 * workflow runners can refuse `OWNER_DECISION: COMPLETE` from workers that
 * shipped code locally but never opened a PR.
 */
export declare function findPrUrl(output: string, repoQualifier?: string, injectedTaskText?: string): string | null;
export declare function execCustomVerification(command: string, cwd: string, timeoutMs?: number): {
    passed: boolean;
    output: string;
};
export declare function checkCustom(value: string, output: string, cwd?: string): {
    passed: boolean;
    stdout?: string;
    error?: string;
};
export declare function checkFileExists(filePath: string, cwd?: string): boolean;
//# sourceMappingURL=verification.d.ts.map