import { TreeFolder } from '../components/FolderTree/FolderTree.types'; import { Folder } from '../types'; /** * Web-app folder structure (from appstore.js and foldercard.jsx) */ export interface WebAppFolder { _id: string; name: string; thumbnail?: string; folders_count?: number; resources_count?: number; isPublic?: boolean; allowedActions?: string[]; defaultorder?: string; } /** * Convert a single web-app folder object to the new Folder interface * * @param folder - Web-app folder object * @returns Folder object compatible with new components * * @example * ```typescript * const webAppFolder = { * _id: 'folder123', * name: 'My Folder', * thumbnail: 'https://...', * folders_count: 5, * resources_count: 20, * isPublic: true, * allowedActions: ['list', 'view'] * }; * * const folder = adaptFolder(webAppFolder); * // Returns: { id: 'folder123', name: 'My Folder', foldersCount: 5, ... } * ``` */ export declare function adaptFolder(folder: WebAppFolder): Folder; /** * Convert an array of web-app folder objects to Folder array * * @param folders - Array of web-app folder objects * @returns Array of Folder objects compatible with new components * * @example * ```typescript * const folders = appStore.gridData.folder[0] || []; * const adaptedFolders = adaptFolders(folders); * ``` */ export declare function adaptFolders(folders: WebAppFolder[]): Folder[]; /** * Convert a single web-app folder to a TreeFolder for hierarchical navigation * * @param folder - Web-app folder object * @param parentId - Parent folder ID (null for root folders) * @param children - Pre-loaded child folders (optional) * @returns TreeFolder object compatible with FolderTree component * * @example * ```typescript * const webAppFolder = { * _id: 'folder123', * name: 'My Folder', * folders_count: 3 * }; * * const treeFolder = adaptFolderToTree(webAppFolder, null); * // Returns: { id: 'folder123', name: 'My Folder', parentId: null, ... } * ``` */ export declare function adaptFolderToTree(folder: WebAppFolder, parentId?: string | null, children?: TreeFolder[]): TreeFolder; /** * Convert an array of web-app folders to TreeFolder array * * @param folders - Array of web-app folder objects * @param parentId - Parent folder ID (null for root folders) * @returns Array of TreeFolder objects compatible with FolderTree component * * @example * ```typescript * const folders = appStore.gridData.folder[0] || []; * const treeFolders = adaptFoldersToTree(folders, null); * ``` */ export declare function adaptFoldersToTree(folders: WebAppFolder[], parentId?: string | null): TreeFolder[]; /** * Extended folder type with parent reference for tree building */ export interface WebAppFolderWithParent extends WebAppFolder { parentId?: string; } /** * Build a hierarchical tree from flat folder data * This is useful when you have a flat list of folders with parent references * * @param folders - Flat array of web-app folders with parent references * @returns Hierarchical TreeFolder array */ export declare function buildFolderTree(folders: WebAppFolderWithParent[]): TreeFolder[]; /** * Type guard to check if an object is a valid WebAppFolder */ export declare function isWebAppFolder(obj: unknown): obj is WebAppFolder; //# sourceMappingURL=folder-adapter.d.ts.map