/**
 * File Textbox — Panel-based editor combining comment text areas and file attachments.
 * Each panel is an independent comment + files group. Click "Comment/Upload Files" to add panels.
 */
import React from 'react';
import { type CollabFormFieldBaseProps, type FileData } from '../hazo_collab_form_base.js';
import type { FileTextboxValue } from '../../types/file_textbox.js';
import type { FileManagerCallbacks } from '../../types/file_manager.js';
import type { FormFileAttachment } from '../../types/file_attachment.js';
import type { ClarificationItem, ClarificationResponse } from '../../types/clarification.js';
/** A classification tag to display on file blocks */
export interface FileTextboxTag {
    id: string;
    label: string;
    color?: string;
    tooltip?: string;
}
/** Classification metadata displayed below file blocks */
export interface FileClassificationMeta {
    document_date?: string;
    document_nature?: string;
    document_type?: string[];
}
export interface HazoCollabFormFileTextboxProps extends CollabFormFieldBaseProps {
    value: FileTextboxValue;
    onChange: (value: FileTextboxValue) => void;
    file_manager?: FileManagerCallbacks;
    file_accept?: string;
    max_files?: number;
    tag_options?: string[];
    tags_editable?: boolean;
    classification_tags?: Record<string, FileTextboxTag[]>;
    classification_metadata?: Record<string, FileClassificationMeta>;
    on_file_view?: (attachment: FormFileAttachment) => void;
    on_classify_file?: (attachment: FormFileAttachment) => void;
    classifying_file_ids?: Set<string>;
    queued_file_ids?: Set<string>;
    autofilling_file_ids?: Set<string>;
    validation_errors?: Record<string, ClarificationItem[]>;
    validating_file_ids?: Set<string>;
    validated_file_ids?: Set<string>;
    on_validation_response?: (clarification_id: string, response: ClarificationResponse) => void;
    /** External response labels (from shared pending responses) — merged with local state */
    external_file_response_labels?: Record<string, string>;
    /** Set of clarification IDs that have been responded to (for enriching dialog items) */
    responded_clarification_ids?: Set<string>;
    /** Sent/flushed clarifications with response data (for pre-filling responded items in dialog) */
    sent_clarifications?: ClarificationItem[];
    /** Callback when green validation tick is clicked (to show validation details) */
    on_validated_click?: (file_id: string) => void;
    placeholder?: string;
    min_height?: string;
    file_area_color?: string;
    /** Per-file validation details for built-in dialog (keyed by file_id) */
    file_validation_details?: Record<string, import('../shared/file_bar/file_bar_types.js').FileValidationDetails>;
    /** Per-file pipeline status text (keyed by file_id) */
    file_pipeline_status?: Record<string, string>;
}
export interface HazoCollabFormFileTextboxRef {
    get_file_data: () => FileData[];
}
export declare const HazoCollabFormFileTextbox: React.ForwardRefExoticComponent<HazoCollabFormFileTextboxProps & React.RefAttributes<HTMLDivElement & HazoCollabFormFileTextboxRef>>;
//# sourceMappingURL=hazo_collab_form_file_textbox.d.ts.map