import type { CitationReference, RetrievalReference } from "@oscharko-dev/keiko-contracts";
import type { LocalKnowledgeGroundedContextPack } from "../retrieval/context-pack-assembler.js";
import type { RetrievalNoEvidenceReason, RetrievalQuery } from "../retrieval/types.js";
export interface ConversationGroundedQuery {
    readonly conversationId: string;
    readonly capsuleId?: RetrievalQuery["capsuleId"];
    readonly capsuleSetId?: RetrievalQuery["capsuleSetId"];
    readonly text: string;
    readonly topK?: number;
    readonly minScore?: number;
}
export interface ConversationGroundedAnswer {
    readonly answer: string;
    readonly references: readonly RetrievalReference[];
    readonly citations: readonly ConversationCitationReference[];
    readonly pack: LocalKnowledgeGroundedContextPack;
    readonly noEvidence: boolean;
    readonly reason?: RetrievalNoEvidenceReason;
}
export interface ConversationCitationReference {
    readonly marker: string;
    readonly index: number;
    readonly citation: CitationReference;
    readonly reference: RetrievalReference;
}
export interface AnswerGeneratorInput {
    readonly query: ConversationGroundedQuery;
    readonly pack: LocalKnowledgeGroundedContextPack;
    readonly references: readonly RetrievalReference[];
    readonly signal?: AbortSignal | undefined;
}
export interface AnswerGenerator {
    readonly generate: (input: AnswerGeneratorInput) => Promise<string>;
}
//# sourceMappingURL=types.d.ts.map