import type { WorkItem } from '../../../domain/generated/output.js';
import type { IIntakeItemRepository } from '../../ports/output/repositories/intake-item-repository.interface.js';
import type { IWorkItemRepository } from '../../ports/output/repositories/work-item-repository.interface.js';
export interface DetectDuplicatesInput {
    intakeItemId: string;
    limit?: number;
}
export interface DuplicateCandidate {
    workItem: WorkItem;
    score: number;
}
export type DetectDuplicatesResult = {
    ok: true;
    candidates: DuplicateCandidate[];
} | {
    ok: false;
    error: string;
};
export declare class DetectDuplicatesUseCase {
    private readonly intakeRepo;
    private readonly workItemRepo;
    constructor(intakeRepo: IIntakeItemRepository, workItemRepo: IWorkItemRepository);
    execute(input: DetectDuplicatesInput): Promise<DetectDuplicatesResult>;
    private tokenize;
    private jaccardSimilarity;
}
//# sourceMappingURL=detect-duplicates.use-case.d.ts.map