import type { ChatMessage } from '../types/ChatMessage';
import type { ParsedCitation } from './parseCitationsFromContent';
/**
* Minimal message shape required to derive inline citation references and footnotes.
*
* @private utility of ``
*/
type CitationFootnoteMessage = Pick;
/**
* One rendered citation footnote entry shown below the message body.
*
* @private utility of ``
*/
export type CitationFootnoteEntry = {
/**
* Visible footnote number assigned by first appearance in the message body.
*/
readonly number: number;
/**
* Citation metadata rendered for this footnote.
*/
readonly citation: ParsedCitation;
};
/**
* Render-ready message citation payload containing transformed content plus footnotes.
*
* @private utility of ``
*/
export type CitationFootnoteRenderModel = {
/**
* Markdown/HTML content with inline citation tokens replaced by numeric superscripts.
*/
readonly content: ChatMessage['content'];
/**
* Deduplicated footnotes ordered by first appearance in the message body.
*/
readonly footnotes: ReadonlyArray;
};
/**
* Creates one render model that replaces raw citation tokens with numeric footnotes.
*
* Supported input markers:
* - OpenAI-style full markers that already include the document source name.
* - Bracketed id-only tokens, for example `[0:0]` or `[8:13]`
*
* Footnotes are deduplicated by document source while preserving the first-seen order.
*
* @param message - Message content plus optional structured citation metadata.
* @returns Render-ready content and matching footnote entries.
*
* @private utility of ``
*/
export declare function createCitationFootnoteRenderModel(message: CitationFootnoteMessage): CitationFootnoteRenderModel;
export {};