import React from 'react'; import { type FolderTreeData } from './DirectoryTree'; export interface FileContentService { loadFileContent(filePath: string): Promise; } export type SemanticType = 'root' | 'directoryTree' | 'directoryTitle' | 'filePreview' | 'previewTitle' | 'previewRender'; export interface FolderProps { prefixCls?: string; className?: string; classNames?: Partial>; styles?: Partial>; style?: React.CSSProperties; directoryIcons?: Record<'directory' | string, React.ReactNode | (() => React.ReactNode)>; treeData: FolderTreeData[]; selectable?: boolean; selectedFile?: string[]; defaultSelectedFile?: string[]; onSelectedFileChange?: (file: { path: string[]; title?: FolderTreeData['title']; content?: string; }) => void; directoryTreeWith?: number | string; emptyRender?: React.ReactNode | (() => React.ReactNode); previewRender?: React.ReactNode | ((file: { content?: string; path: string[]; title?: FolderTreeData['title']; language: string; }, info: { originNode: React.ReactNode; }) => React.ReactNode); defaultExpandedPaths?: string[]; expandedPaths?: string[]; defaultExpandAll?: boolean; onExpandedPathsChange?: (paths: string[]) => void; fileContentService?: FileContentService; onFileClick?: (filePath: string, content?: string) => void; onFolderClick?: (folderPath: string) => void; directoryTitle?: React.ReactNode | (() => React.ReactNode); previewTitle?: React.ReactNode | (({ title, path, content, }: { title: React.ReactNode; path: string[]; content: string; }) => React.ReactNode); } export type FolderRef = { nativeElement: HTMLDivElement; }; declare const Folder: React.ForwardRefExoticComponent>; export default Folder;