/**
 * Hook configuration for useUploadHandler
 */
export interface UploadHandlerOptions {
    /**
     * Callback to be called after upload is done with the created object IDs
     */
    onUploadDone: (objectIds: string[]) => Promise<void>;
}
/**
 * Result of the upload process
 */
export interface DocumentUploadResult {
    /** Whether the upload was successful overall */
    success: boolean;
    /** IDs of all processed objects (both newly uploaded and existing) */
    objectIds: string[];
    /** Newly uploaded files information */
    uploadedFiles: UploadedFileInfo[];
    /** Files that were skipped (already existed) */
    skippedFiles: UploadedFileInfo[];
    /** Files that failed to upload */
    failedFiles: UploadedFileInfo[];
}
/**
 * Information about a successfully uploaded file
 */
interface UploadedFileInfo {
    /** The ID of the uploaded object */
    id?: string;
    /** The name of the file */
    name: string;
    /** The name of the file */
    location?: string;
    /** The status of the upload */
    status: "created" | "updated" | "skipped" | "failed";
    /** The type of the object */
    type: string | null;
    /** Has there been any Error */
    error?: string;
}
/**
 * Hook for handling file uploads to the store
 *
 * @param options Configuration options for the upload handler
 * @returns Upload handler function that takes files and type, and returns upload results
 */
export declare function useDocumentUploadHandler(options: UploadHandlerOptions | ((objectIds: string[]) => Promise<void>)): (files: File[], type: string | null, collectionId?: string) => Promise<DocumentUploadResult>;
export {};
//# sourceMappingURL=useUploadHandler.d.ts.map