/**
 * Auto-Resolve Merged Branches Use Case
 *
 * Detects features in the Review lifecycle whose remote branches have already
 * been merged, and transitions them to Maintain. This resolves stale
 * "action needed" states that are out of sync with the actual git/PR state.
 *
 * Called on dashboard page load to ensure the UI reflects reality.
 *
 * Strategy per feature:
 * 1. If the feature has PR data, check PR status via batch `listPrStatuses`.
 *    If the PR is Merged, transition to Maintain.
 * 2. If the feature has no PR data, check if the branch is merged into the
 *    default branch using `verifyMerge` (git merge-base).
 */
import type { Feature } from '../../../domain/generated/output.js';
import type { IGitPrService } from '../../ports/output/services/git-pr-service.interface.js';
import type { IFeatureRepository } from '../../ports/output/repositories/feature-repository.interface.js';
import type { IAgentRunRepository } from '../../ports/output/agents/agent-run-repository.interface.js';
import { UpdateFeatureLifecycleUseCase } from './update/update-feature-lifecycle.use-case.js';
export interface AutoResolveMergedBranchesOutput {
    resolvedCount: number;
    resolvedFeatureIds: string[];
}
export declare class AutoResolveMergedBranchesUseCase {
    private readonly featureRepo;
    private readonly gitPrService;
    private readonly agentRunRepo;
    private readonly updateLifecycle;
    constructor(featureRepo: IFeatureRepository, gitPrService: IGitPrService, agentRunRepo: IAgentRunRepository, updateLifecycle: UpdateFeatureLifecycleUseCase);
    execute(features: Feature[]): Promise<AutoResolveMergedBranchesOutput>;
    private processRepository;
    private checkFeature;
    private checkLocalMergeStatus;
    private checkLocalMergeForFeature;
    private resolveFeature;
}
//# sourceMappingURL=auto-resolve-merged-branches.use-case.d.ts.map