import type { SftpFileEntry } from '../../types'; import type { SftpPane } from '../../application/state/sftp/types'; import type { SftpTransferSource } from './SftpContext'; import type { UseSftpPaneSortingResult } from '../../application/state/sftp/useSftpPaneSorting'; export interface SftpPaneTreeViewProps { pane: SftpPane; side: 'left' | 'right'; onPrepareSelection: () => void; onLoadChildren: (path: string) => Promise; onMoveEntriesToPath: (sourcePaths: string[], targetPath: string) => Promise; onNavigateUp: () => void; onNavigateTo: (path: string) => void; onRefresh: () => void; onOpenEntry: (entry: SftpFileEntry, fullPath?: string) => void; onDragStart: (files: SftpTransferSource[], side: 'left' | 'right') => void; onDragEnd: () => void; openRenameDialog: (entryPath: string) => void; openDeleteConfirm: (targets: string[]) => void; onCopyToOtherPane: (files: SftpTransferSource[]) => void; onReceiveFromOtherPane: (files: SftpTransferSource[]) => void; onOpenFileWithSystemDefault?: (entry: SftpFileEntry, fullPath?: string) => void; onOpenFileWith?: (entry: SftpFileEntry, fullPath?: string) => void; onEditFile?: (entry: SftpFileEntry, fullPath?: string) => void; onDownloadFile?: (entry: SftpFileEntry, fullPath?: string) => void; onExtractArchive?: (entry: SftpFileEntry, fullPath?: string) => void | Promise; onEditPermissions?: (entry: SftpFileEntry, fullPath?: string) => void; draggedFiles: (SftpTransferSource & { side: 'left' | 'right' })[] | null; openNewFolderDialog: (targetPath: string) => void; openNewFileDialog: (targetPath: string) => void; onUploadExternalFiles?: (dataTransfer: DataTransfer, targetPath?: string) => Promise; onUploadExternalFileList?: (fileList: FileList, targetPath?: string) => Promise; onUploadExternalFolder?: (targetPath?: string) => Promise; sorting: UseSftpPaneSortingResult; reloadRequest: { token: number; paths?: string[]; full?: boolean }; }