import type { ToolCall } from '@pellux/goodvibes-sdk/platform/types/tools';
import type { ContentPart } from '../providers/interface.js';
/**
 * Represents a single message as stored in ConversationManager.
 * Mirrors the internal Message union type.
 */
export interface ExportMessage {
    role: 'user' | 'assistant' | 'system' | 'tool';
    content: string | ContentPart[];
    toolCalls?: ToolCall[];
    callId?: string;
    toolName?: string;
    reasoningContent?: string;
    reasoningSummary?: string;
    usage?: {
        inputTokens: number;
        outputTokens: number;
        cacheReadTokens?: number;
        cacheWriteTokens?: number;
    };
    cancelled?: boolean;
}
export interface ExportMetadata {
    model?: string;
    provider?: string;
    sessionId?: string;
    title?: string;
}
/**
 * exportToMarkdown - Convert a conversation to a clean Markdown string.
 *
 * Format:
 * - Header with session metadata (model, provider, date, session ID)
 * - Each message as a section with role prefix
 * - Code blocks preserved
 * - Tool calls formatted as `<details>` collapsible blocks
 * - Tool results formatted as `<details>` collapsible blocks
 * - Token usage summary at the end
 */
export declare function exportToMarkdown(messages: ExportMessage[], metadata?: ExportMetadata): string;
/** Extract plain text from a string or ContentPart array. */
export declare function extractText(content: string | ContentPart[]): string;
//# sourceMappingURL=markdown.d.ts.map