/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/

import { TreeEntry } from "./tree-entry.model.js";

interface MoveFileHandle extends FileSystemFileHandle {
    move: (name: FileSystemDirectoryHandle | null) => Promise<void> | void;
}
type ProjectFileSystemHandle =
    | FileSystemDirectoryHandle
    | FileSystemFileHandle
    | MoveFileHandle
    | null;
export type FileEntry = {
    id?: string;
    name: string;
    handle: ProjectFileSystemHandle;
    isDirectory: boolean;
    isExpanded?: boolean;
    isVCSFile?: boolean;
    treeEntry?: TreeEntry;
};

export interface MoveDirHandle extends FileSystemDirectoryHandle {
    values: () => AsyncIterableIterator<
      FileSystemDirectoryHandle | FileSystemFileHandle
    >;
  }
