/**
 * Thread timeline — groups messages, filters by visibility,
 * dispatches to message components. Each message is its own panel.
 * Supports inline edit and delete on user messages.
 */
import type { ThreadMessage, ContentItem, SendBackIssue, RuleDecision } from '../types.js';
export interface ThreadTimelineProps {
    messages: ThreadMessage[];
    role: 'agent' | 'client';
    current_user_id?: string;
    on_view_file?: (item: ContentItem) => void;
    on_remove_file?: (item: ContentItem) => void;
    on_accept?: (content_ref: string) => void;
    on_dismiss?: (content_ref: string) => void;
    on_send_to_client?: (content_ref: string) => void;
    on_edit_message?: (message_id: string, updated: {
        content_text?: string;
        content_items?: ContentItem[];
    }) => void;
    on_delete_message?: (message_id: string) => void;
    /** Upload a file via file_manager, returns ContentItem with real file_id */
    upload_file?: (file: File) => Promise<ContentItem>;
    /** Agent sends back selected issues as a new task */
    on_send_back_issues?: (item: ContentItem, issues: SendBackIssue[], accepted_issue_keys: string[]) => void;
    /** Agent submits batch decisions from the Pending Review panel */
    on_submit_decisions?: (item: ContentItem, decisions: RuleDecision[]) => void;
    /** Persist updates to a ContentItem */
    on_update_content_item?: (content_id: string, updates: Partial<ContentItem>) => void;
    /** Parent task status — used to show resolved state on send_back messages */
    task_status?: string;
    /** Pipeline file statuses */
    file_statuses?: Map<string, import('../hooks/use_file_pipeline.js').FileStatusEntry>;
    /** Classification results per content_id */
    classification_results?: Map<string, import('../types.js').ClassificationResult>;
    /** Validation results per content_id */
    validation_results?: Map<string, import('../../../types/validation.js').ValidationRuleResult[]>;
    /** File manager callbacks for upload in clarification response dropzone */
    file_manager?: import('../../../types/file_manager.js').FileManagerCallbacks;
    /** Callback when replacement files are submitted from a clarification response */
    on_replacement_files?: (source_content_id: string, files: import('../../../types/file_attachment.js').FormFileAttachment[]) => void;
    /** View action rendering — 'icon' (default) or 'text'. Forwarded to FileBar. */
    view_button_variant?: 'icon' | 'text';
    /** Override info-icon visibility. When omitted, defaults to agent-only. Forwarded to FileBar. */
    show_info_icon?: boolean;
    /**
     * Set of source_content_ids whose spawned send-back task is now resolved.
     * Forwarded to FileBar so the parent file's "Sent Back" pill disappears
     * once the child question is completed.
     */
    sent_back_resolved_ids?: Set<string>;
    /** True while the aggregate resolver is in-flight — drives the spinner badge in SendBackMessage. */
    resolving?: boolean;
    /** Called when a user clicks Reply on a send-back issue block and submits text. */
    on_reply_to_issue?: (source_content_id: string, file_name: string | undefined, rule_name: string | undefined, text: string) => void;
    /** Available document types for the FileBar's document-type editor. */
    available_document_types?: import('../../shared/document_type_editor.js').DocumentTypeOption[];
    /** Called when the agent picks a new document type — parent re-runs validation. */
    on_change_document_type?: (item: ContentItem, new_type_id: string) => Promise<void> | void;
    /** Map of content_id → effective "kept for collected data" state. When provided,
     *  FileBar renders a Keep checkbox; toggling fires on_keep_change. */
    keep_selections?: Record<string, boolean>;
    /** Called when the agent toggles a Keep checkbox on a file row. Same shape as
     *  the Collected Data tab's on_selection_change. */
    on_keep_change?: (selections: Record<string, boolean>) => void;
}
export declare function ThreadTimeline({ messages, role, current_user_id, on_view_file, on_remove_file, on_accept, on_dismiss, on_send_to_client, on_edit_message, on_delete_message, upload_file, on_send_back_issues, on_submit_decisions, on_update_content_item, task_status, file_statuses, classification_results, validation_results, file_manager, on_replacement_files, view_button_variant, show_info_icon, sent_back_resolved_ids, resolving, available_document_types, on_change_document_type, keep_selections, on_keep_change, on_reply_to_issue }: ThreadTimelineProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=thread_timeline.d.ts.map