import { Selection } from '@heroui/react'; import { UserDocumentRecord } from '../workspace/types.js'; import { SettingsCardState } from '../../../lib/auth/settings/settings-card-state.js'; import { DeleteStorageObjectDialogProps } from './delete-storage-object-dialog.js'; import { FileBrowserEntry, FileBrowserViewMode } from './file-browser-types.js'; import { StorageTransfer } from './storage-transfer.js'; export interface StorageFolderCrumb { label: string; prefix: string; } export type StorageManagerDialog = { kind: "create-folder"; } | { kind: "rename"; entry: FileBrowserEntry; } | { kind: "move"; entries: FileBrowserEntry[]; } | null; export interface StorageFileManager { breadcrumbItems: StorageFolderCrumb[]; canCreateFolder: boolean; cancelUploads: () => void; canDelete: boolean; canDownload: boolean; canMove: boolean; canRename: boolean; canUpload: boolean; clearSelection: () => void; closePreview: () => void; deleteDialogProps: DeleteStorageObjectDialogProps; description?: string; dialog: StorageManagerDialog; dismissTransfer: (id: string) => void; download: (entry?: FileBrowserEntry) => void; emptyKind: "bucket" | "folder" | "filter"; entries: FileBrowserEntry[]; filteredEntries: FileBrowserEntry[]; isDownloading: boolean; isMutating: boolean; isUploading: boolean; mutationLabel?: string; onRetry?: () => void; openCreateFolder: () => void; openMove: (entries?: FileBrowserEntry[]) => void; openPreview: (entry: FileBrowserEntry) => void; openRename: (entry: FileBrowserEntry) => void; prefix: string; previewDocument: UserDocumentRecord | null; previewPending: boolean; refresh: () => void; requestDelete: (entries?: FileBrowserEntry[]) => void; searchValue: string; selectedEntries: FileBrowserEntry[]; selectedKeys: Selection; selectionCount: number; setDialog: (dialog: StorageManagerDialog) => void; setPrefix: (prefix: string) => void; setSearchValue: (value: string) => void; setSelectedKeys: (keys: Selection) => void; setViewMode: (mode: FileBrowserViewMode) => void; snapshotAndUpload: (list: FileList | null | undefined) => void; state: SettingsCardState; submitCreateFolder: (name: string) => void; submitMove: (destinationPrefix: string) => void; submitRename: (name: string) => void; title: string; transfers: StorageTransfer[]; upload: (files: readonly File[]) => void; viewMode: FileBrowserViewMode; } export declare function previewDocumentFromEntry(entry: FileBrowserEntry, url: string): UserDocumentRecord; export declare function useStorageFileManager(): StorageFileManager; export declare function useStorageFilesController(): StorageFileManager;