/**
 * FileBar — Reusable file row with consistent columnar layout.
 *
 * Layout: [FileIcon] [Filename...] [FileSize] [InfoBtn] [ClassTag] [ViewIcon] [ValidationIcon] [RemoveIcon(hover)]
 *
 * Below the main row (when active):
 *   ⟳ Status text...   (small italic during LLM calls)
 */
import type { FormFileAttachment } from '../../../types/file_attachment.js';
import type { FileTextboxTag, FileClassificationMeta } from '../../hazo_collab_form_file_textbox/hazo_collab_form_file_textbox.js';
import type { ClarificationItem } from '../../../types/clarification.js';
import type { FileValidationDetails } from './file_bar_types.js';
export interface FileBarProps {
    attachment: FormFileAttachment;
    /** Struck-through styling for replaced files */
    muted?: boolean;
    /** Status icon overriding the default file type icon */
    status_icon?: 'classifying' | 'validating' | 'queued' | 'autofilling' | null;
    /** Validation state — if provided, shows a validation badge */
    validation?: {
        state: 'passed' | 'issues' | 'resolved' | 'validating' | 'sent_back' | 'accepted' | 'pending_review';
        issue_count?: number;
    } | null;
    on_validation_click?: (file_id: string) => void;
    /** When provided, clicking validation badge opens built-in dialog instead of on_validation_click */
    validation_details?: FileValidationDetails | null;
    /** Map of responded clarification items for resolution details in validation dialog */
    validation_responded_map?: Map<string, ClarificationItem>;
    /** Small italic status text shown below the bar during LLM calls */
    pipeline_status_text?: string | null;
    /** Width constraint class (default: 'max-w-[400px]'). Pass 'max-w-full' for full width. */
    max_width?: string;
    /** Classification tags displayed inline */
    classification_tags?: FileTextboxTag[];
    /** Classification metadata (date + nature) shown on tag expand */
    classification_meta?: FileClassificationMeta;
    on_download?: (attachment: FormFileAttachment) => void;
    on_view?: (attachment: FormFileAttachment) => void;
    on_remove?: () => void;
    on_classify?: (attachment: FormFileAttachment) => void;
    /** Callback when back office sends back a resolved validation rule as a new clarification */
    on_send_back_clarification?: (rule: import('../../../types/validation.js').ValidationRuleResult, message: string) => void;
    /** Callback when agent accepts a resolved validation rule */
    on_accept_rule?: (rule: import('../../../types/validation.js').ValidationRuleResult) => void;
    /** Callback when agent accepts all resolved validation rules */
    on_accept_all_rules?: (rules: import('../../../types/validation.js').ValidationRuleResult[]) => void;
    /** Callback to view a referenced document (for send-back compose area) */
    on_view_file?: (file_id: string) => void;
    disabled?: boolean;
    class_name?: string;
    /** Optional validation results shown as an expandable info panel below the file bar */
    info_validations?: Array<{
        rule_key: string;
        status: string;
        details: string;
    }>;
}
/** Derive validation props from raw clarification data (convenience helper). */
export declare function derive_validation(file_id: string, opts: {
    validating_file_ids?: Set<string>;
    validated_file_ids?: Set<string>;
    validation_errors?: Record<string, ClarificationItem[]>;
    file_response_labels?: Record<string, string>;
    responded_ids?: Set<string>;
}): FileBarProps['validation'];
export declare function FileBar({ attachment, muted, status_icon, validation, on_validation_click, validation_details, validation_responded_map, pipeline_status_text, max_width, classification_tags, classification_meta, on_download, on_view, on_remove, on_classify, on_send_back_clarification, on_accept_rule, on_accept_all_rules, on_view_file, disabled, class_name, info_validations, }: FileBarProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=file_bar.d.ts.map