import type { Logger } from 'pino';
import type { ReviewJob } from '../../../frameworks/queue/pQueueAdapter.js';
import type { ReviewRequestTrackingGateway, Platform } from '../../../modules/tracking/interface-adapters/gateways/reviewRequestTracking.gateway.js';
import type { Language } from '../../../modules/shared-kernel/entities/language/language.schema.js';
export interface TriggerReviewParams {
    platform: Platform;
    projectPath: string;
    localPath: string;
    reviewRequestNumber: number;
    title: string;
    sourceBranch: string;
    targetBranch: string;
    mrUrl: string;
    skill: string;
    jobType?: 'review' | 'followup';
    language?: Language;
    assignedBy?: {
        username: string;
        displayName?: string;
    };
}
export type TriggerReviewResult = {
    status: 'success';
    jobId: string;
} | {
    status: 'deduplicated';
    reason: string;
} | {
    status: 'failed';
    reason: string;
};
export interface ReviewQueuePort {
    hasActiveJob(jobId: string): boolean;
    enqueue(job: ReviewJob): boolean;
    createJobId(platform: string, projectPath: string, mrNumber: number): string;
}
export interface TriggerReviewDependencies {
    queuePort: ReviewQueuePort;
    reviewRequestTrackingGateway: ReviewRequestTrackingGateway;
    logger: Logger;
}
export declare function triggerReview(params: TriggerReviewParams, deps: TriggerReviewDependencies): TriggerReviewResult;
//# sourceMappingURL=triggerReview.usecase.d.ts.map