import type { Logger } from "pino";
export declare const TITLE_SOURCE_LIMIT = 1600;
export declare const TITLE_MAX_LENGTH = 80;
export declare function runtimeResultText(result: unknown): string;
export declare function sanitizeGeneratedTitle(raw: string): string | null;
export declare function fallbackTitleFromText(value: string): string | null;
export declare function buildTitlePrompt({ instruction, sourceLabel, source, }: {
    instruction: string;
    sourceLabel: string;
    source: string;
}): string;
export declare function buildChatTitlePrompt(body: string, sourceLabel?: string): string;
export interface ChatTitleGenerationConversation {
    id: string;
    orgId: string;
    title: string;
}
export interface ChatTitleGenerationStore {
    updateDefaultTitle(id: string, title: string): Promise<unknown>;
    replaceSystemGeneratedTitle(id: string, expectedTitle: string, title: string): Promise<unknown>;
}
export interface ChatTitleGenerationProductIntelligence {
    execute(input: {
        orgId: string;
        purpose: "lightweight";
        feature: "chat_title";
        prompt: string;
    }): Promise<unknown>;
}
export declare function startChatTitleGeneration(input: {
    conversation: ChatTitleGenerationConversation;
    body: string;
    chats: ChatTitleGenerationStore;
    productIntelligence: ChatTitleGenerationProductIntelligence;
    logger: Pick<Logger, "warn">;
}): void;
export declare function buildMessengerGroupTitlePrompt(titles: string[]): string;
//# sourceMappingURL=title-generation.d.ts.map