import type { ExtractedLinkContent, TranscriptSegment } from "@steipete/summarize-core/content";
import type { LlmTokenUsage } from "../llm/types.js";
import { type InferSpeakerMappingsResult } from "./openai.js";
import type { SpeakerIdentificationSettings, SpeakerIdentityMapping } from "./types.js";
export declare class SpeakerIdentificationError extends Error {
    name: string;
}
export type SpeakerIdentificationResult = {
    extracted: ExtractedLinkContent;
    mappings: SpeakerIdentityMapping[];
    transcriptHash: string | null;
    usage: LlmTokenUsage | null;
    inferenceAttempted: boolean;
    warning: string | null;
    cacheable: boolean;
};
type InferMappings = (args: {
    segments: TranscriptSegment[];
    unresolvedSpeakers: string[];
    anchoredMappings: Record<string, string>;
    title: string | null;
    description: string | null;
    sourceUrl: string;
    settings: SpeakerIdentificationSettings;
    apiKey: string;
    baseUrl: string | null;
    timeoutMs: number;
    fetchImpl: typeof fetch;
}) => Promise<InferSpeakerMappingsResult>;
export declare function identifySpeakersInExtractedContent({ extracted, sourceUrl, settings, openaiApiKey, openaiBaseUrl, timeoutMs, maxContentCharacters, fetchImpl, inferMappings, }: {
    extracted: ExtractedLinkContent;
    sourceUrl: string;
    settings: SpeakerIdentificationSettings;
    openaiApiKey: string | null;
    openaiBaseUrl: string | null;
    timeoutMs: number;
    maxContentCharacters: number | null;
    fetchImpl: typeof fetch;
    inferMappings?: InferMappings;
}): Promise<SpeakerIdentificationResult>;
export {};
