/**
 * ClarificationSection - Renders as a form section after regular sections.
 *
 * Groups clarification items by status: pending first, then responded, then resolved/dismissed.
 * Dismissed/resolved items stay visible with their status badge as the decision label.
 * Only visible when enable_clarifications=true AND clarifications exist.
 */
import React from 'react';
import type { ClarificationItem, ClarificationCallbacks, ClarificationCounts, ResponseValidationState } from '../../types/clarification.js';
import type { FileManagerCallbacks } from '../../types/file_manager.js';
export interface ClarificationSectionProps {
    /** All clarification items */
    items: ClarificationItem[];
    /** Aggregate counts */
    counts: ClarificationCounts;
    /** Whether response forms are read-only */
    read_only?: boolean;
    /** Callbacks for clarification lifecycle */
    callbacks?: ClarificationCallbacks;
    /** Callback when a doc reference is clicked */
    on_doc_click?: (file_id: string) => void;
    /** Callback to view a referenced document (opens PDF viewer) */
    on_doc_view?: (file_id: string, file_name: string) => void;
    /** Callback when the target field label is clicked (scrolls to field) */
    on_field_click?: (field_id: string) => void;
    /** File manager callbacks for response file uploads */
    file_manager?: FileManagerCallbacks;
    /** Hide per-card submit button (when a global submit exists) */
    hide_submit?: boolean;
    /** Custom label for the submit button (default: "Submit Response") */
    submit_label?: string;
    /** Hide the entire response form (green zone) on all cards */
    hide_response_form?: boolean;
    /** Callback fired on every response change (choice, comment, files) */
    on_response_change?: (id: string, response: import('../../types/clarification.js').ClarificationResponse) => void;
    /** Hide the section header (icon + title + counts) */
    hide_header?: boolean;
    /** Compact mode: hides section header, card headers, and issue label line */
    compact?: boolean;
    /** Per-file validation state to show as badge on doc reference file bars */
    file_validation?: Record<string, {
        state: 'passed' | 'issues' | 'resolved' | 'validating';
        issue_count?: number;
    }>;
    /** Response validation state map keyed by clarification item id */
    response_validations?: Record<string, ResponseValidationState>;
    /** Callback when a file validation badge is clicked */
    on_validation_click?: (file_id: string) => void;
    /** Per-file validation details for built-in dialog (keyed by file_id) */
    file_validation_details?: Record<string, import('../../components/shared/file_bar/file_bar_types.js').FileValidationDetails>;
    /** Per-file pipeline status text (keyed by file_id) */
    file_pipeline_status?: Record<string, string>;
    /** Preserve original item order (skip status-based sorting) */
    preserve_order?: boolean;
    /** Enable collapsible accordion per issue (auto-collapse responded/resolved items) */
    collapsible?: boolean;
    /** Label shown on each card (e.g., "Action Required") */
    card_label?: string;
    /** Optional className */
    class_name?: string;
}
/** Entry is either a standalone item or an array of grouped items */
export type GroupEntry = ClarificationItem | ClarificationItem[];
/**
 * Group items that share identical doc reference sets.
 * Items with 0 doc_references stay standalone.
 * Items with a unique doc set stay standalone.
 * Items sharing the same doc set (2+) are grouped into an array.
 */
export declare function group_by_document(items: ClarificationItem[]): GroupEntry[];
export declare const ClarificationSection: React.NamedExoticComponent<ClarificationSectionProps>;
//# sourceMappingURL=clarification_section.d.ts.map