/**
 * FileTextboxPanel — a single purple panel with comment textarea + file grid + upload zone.
 */
import type { FileTextboxEntry } from '../../types/file_textbox.js';
import type { FormFileAttachment } from '../../types/file_attachment.js';
import type { FileManagerCallbacks } from '../../types/file_manager.js';
import type { ClarificationItem } from '../../types/clarification.js';
import type { FileTextboxTag, FileClassificationMeta } from './hazo_collab_form_file_textbox.js';
export interface FileTextboxPanelProps {
    entry: FileTextboxEntry;
    entry_index: number;
    disabled?: boolean;
    placeholder?: string;
    file_manager?: FileManagerCallbacks;
    file_accept?: string;
    max_files?: number;
    field_id: string;
    file_area_color?: string;
    /** Total file count across all entries (for max_files limit) */
    total_file_count: number;
    classification_tags?: Record<string, FileTextboxTag[]>;
    classification_metadata?: Record<string, FileClassificationMeta>;
    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>;
    file_response_labels: Record<string, string>;
    on_comment_change: (entry_index: number, comment: string) => void;
    on_files_added: (entry_index: number, attachments: FormFileAttachment[]) => void;
    on_file_remove: (entry_index: number, file_block_index: number) => void;
    on_remove_panel: (entry_index: number) => void;
    on_file_view?: (attachment: FormFileAttachment) => void;
    on_classify_file?: (attachment: FormFileAttachment) => void;
    on_download?: (attachment: FormFileAttachment) => void;
    on_issue_click?: (file_id: string) => void;
    on_validated_click?: (file_id: string) => void;
    responded_ids?: Set<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 declare function FileTextboxPanel({ entry, entry_index, disabled, placeholder, file_manager, file_accept, max_files, field_id, total_file_count, classification_tags, classification_metadata, classifying_file_ids, queued_file_ids, autofilling_file_ids, validation_errors, validating_file_ids, validated_file_ids, file_response_labels, on_comment_change, on_files_added, on_file_remove, on_remove_panel, on_file_view, on_classify_file, on_download, on_issue_click, on_validated_click, responded_ids, file_validation_details, file_pipeline_status, }: FileTextboxPanelProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=file_textbox_panel.d.ts.map