import type { Config } from '../config/schema.js';
import type { PREvent } from '../github/webhook.js';
import type { PROrigin } from '../github/detector.js';
import type { PRPhase } from '../lib/board.js';
export declare function isRetryableFixError(err: unknown): boolean;
export declare function getEffectiveStepType(stepType: string, isRecheckRun: boolean): string;
export declare function countCrosscheckCommitsForPR(tmpDir: string, baseRef: string): number;
export declare function exceedsMaxRounds(effectiveType: string, originalStepType: string, maxRounds: number, round: number | undefined): boolean;
export interface PRPhaseData {
    phase?: PRPhase;
    verdict?: string | null;
    commentCount?: number;
    fixCount?: number;
    recheckVerdict?: string | null;
    crTokens?: number;
    recheckTokens?: number;
    fixTokens?: number;
    crReviewer?: string;
    recheckReviewer?: string;
    qualityTier?: string;
}
export interface WorkflowContext {
    owner: string;
    repoName: string;
    prNumber: number;
    pr: PREvent['pull_request'];
    tmpDir: string;
    token: string;
    config: Config;
    origin: PROrigin;
    reviewStart: number;
    log: (msg: string) => void;
    onPhaseChange: (label: string, data?: PRPhaseData) => void;
    crosscheckShas: Set<string>;
    isRecheckRun?: boolean;
    round?: number;
    dryRun?: boolean;
    steps?: import('./workflow.js').WorkflowStep[];
    smartSwitchFallback?: 'claude' | 'codex';
    pushedShas?: string[];
}
export interface WorkflowResult {
    verdict: string | null;
}
export declare function runWorkflow(ctx: WorkflowContext): Promise<WorkflowResult>;
//# sourceMappingURL=runner.d.ts.map