using Rag.Models;
namespace Api.Services.Contracts;
///
/// Classifies a document into a known type (cv, job, contract, etc.) and extracts a title.
///
public interface IDocumentClassifier
{
///
/// Determines the document type and title from the provided text.
/// Uses and directly when supplied;
/// otherwise falls back to a keyword-frequency heuristic over the text.
///
/// Full document text to classify.
/// Caller-supplied document type hint; skips heuristic when non-empty.
/// Caller-supplied document title; skips title extraction when non-empty.
/// Cancellation token.
/// A with type, confidence score, and title.
Task ClassifyAsync(string text, string? providedType, string? providedTitle, CancellationToken ct);
}