/**
 * Collaboration form document upload component
 * Provides a dedicated file dropzone field where documents ARE the primary value
 */
import React from 'react';
import { type CollabFormFieldBaseProps } from './hazo_collab_form_base.js';
import type { FormFileAttachment } from '../types/file_attachment.js';
/**
 * Props for the HazoCollabFormDoc component
 */
export interface HazoCollabFormDocProps extends CollabFormFieldBaseProps {
    /**
     * Current value - the files (public files)
     */
    value?: FormFileAttachment[];
    /**
     * Callback when files change
     */
    onChange?: (files: FormFileAttachment[]) => void;
    /**
     * Private files value
     */
    private_value?: FormFileAttachment[];
    /**
     * Callback when private files change
     */
    on_private_change?: (files: FormFileAttachment[]) => void;
    /**
     * Minimum number of files required
     * @default 0
     */
    min_files?: number;
    /**
     * Maximum number of files allowed
     * @default 1
     */
    max_files?: number;
    /**
     * Maximum file size in bytes
     */
    max_size?: number;
    /**
     * File type accept attribute (MIME types or extensions)
     * Example: ".pdf,.doc,.docx" or "application/pdf,image/*"
     */
    file_accept?: string;
    /**
     * Custom file validator callback
     * Returns error string to reject file, null to accept
     */
    file_validator?: (file: File) => string | null;
    /**
     * Server directory path where files should be saved (required for uploads)
     */
    files_dir: string;
    /**
     * Upload API endpoint
     * @default '/api/collab-forms/upload-file'
     */
    upload_endpoint?: string;
    /**
     * Custom className for the dropzone area
     */
    dropzone_class_name?: string;
    /**
     * Custom className for the dropzone wrapper
     */
    dropzone_wrapper_class_name?: string;
    /**
     * Additional context data for chat functionality
     */
    additional_context?: Record<string, unknown>;
}
/**
 * Exposed methods for HazoCollabFormDoc
 */
export interface HazoCollabFormDocRef {
    /**
     * Get the current public files data
     */
    get_file_data: () => FormFileAttachment[];
    /**
     * Get the current private files data
     */
    get_private_file_data: () => FormFileAttachment[];
}
/**
 * Collaboration form document upload component
 * A dedicated file dropzone field where documents ARE the primary value
 */
export declare const HazoCollabFormDoc: React.ForwardRefExoticComponent<HazoCollabFormDocProps & React.RefAttributes<HTMLDivElement & HazoCollabFormDocRef>>;
//# sourceMappingURL=hazo_collab_form_doc.d.ts.map