import type { FastifyPluginAsync } from 'fastify';
import type { RepositoryConfig } from '../../../../../config/loader.js';
import type { GateClaudeInvocationUseCase } from '../../../../../modules/review-execution/usecases/gateClaudeInvocation.usecase.js';
import type { ClaudeInvokerDependencies } from '../../../../../frameworks/claude/claudeInvoker.js';
import type { ReviewRequestTrackingGateway } from '../../gateways/reviewRequestTracking.gateway.js';
import type { RecordReviewCompletionUseCase } from '../../../../../modules/tracking/usecases/tracking/recordReviewCompletion.usecase.js';
import type { SyncThreadsUseCase } from '../../../../../modules/tracking/usecases/tracking/syncThreads.usecase.js';
import type { ReviewContextFileSystemGateway } from '../../../../../modules/review-execution/interface-adapters/gateways/reviewContext.fileSystem.gateway.js';
import type { GitHubThreadFetchGateway } from '../../../../../modules/platform-integration/interface-adapters/gateways/threadFetch.github.gateway.js';
import type { GitLabThreadFetchGateway } from '../../../../../modules/platform-integration/interface-adapters/gateways/threadFetch.gitlab.gateway.js';
import type { GitLabDiffMetadataFetchGateway } from '../../../../../modules/platform-integration/interface-adapters/gateways/diffMetadataFetch.gitlab.gateway.js';
import type { GitHubDiffMetadataFetchGateway } from '../../../../../modules/platform-integration/interface-adapters/gateways/diffMetadataFetch.github.gateway.js';
import type { GitLabDiffStatsFetchGateway } from '../../../../../modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.js';
import type { GitHubDiffStatsFetchGateway } from '../../../../../modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.github.gateway.js';
import type { Logger } from 'pino';
import type { EnforceBudgetUseCase } from '../../../../../modules/token-accounting/usecases/enforceBudget/enforceBudget.usecase.js';
import type { BudgetExceededPayload } from '../../../../../main/websocket.js';
type Platform = 'gitlab' | 'github';
export interface MrTrackingAdvancedRoutesOptions {
    getRepositories: () => RepositoryConfig[];
    reviewRequestTrackingGateway: ReviewRequestTrackingGateway;
    reviewContextGateway: ReviewContextFileSystemGateway;
    threadFetchGatewayFactory: (platform: Platform) => GitHubThreadFetchGateway | GitLabThreadFetchGateway;
    diffMetadataFetchGatewayFactory: (platform: Platform) => GitHubDiffMetadataFetchGateway | GitLabDiffMetadataFetchGateway;
    diffStatsFetchGatewayFactory: (platform: Platform) => GitHubDiffStatsFetchGateway | GitLabDiffStatsFetchGateway;
    createSyncThreadsUseCase: (platform: Platform) => SyncThreadsUseCase;
    recordReviewCompletion: RecordReviewCompletionUseCase;
    enforceBudget: Pick<EnforceBudgetUseCase, 'execute'>;
    broadcastBudgetExceeded: (payload: BudgetExceededPayload) => void;
    claudeInvokerDeps?: ClaudeInvokerDependencies;
    gateClaudeInvocation?: GateClaudeInvocationUseCase;
    logger: Logger;
}
export declare const mrTrackingAdvancedRoutes: FastifyPluginAsync<MrTrackingAdvancedRoutesOptions>;
export {};
//# sourceMappingURL=mrTrackingAdvanced.routes.d.ts.map