/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import { Project } from "../../lfs/models/project.model.js";
import { VCSProject } from "../../vcs/models/vcs-project.model.js";
import { ActionType } from "../models/action-type.model.js";
import { FileEntry } from "../models/file-entry.model.js";
import { FileExplorerNode } from "../models/file-explorer.model.js";
export interface IFileEntryManager {
    /**
     * Given a project it generates unique fileName based on files in the project folder
     * for both local and VCS projects
     * @param project Local or VCSProject object
     * @param fileName Base name for generating a unique file name
     * @returns a unique file name in the given project folder
     */
    generateUniqueFileName(project: Project | VCSProject, fileName: string): Promise<string>;
    /**
     * @deprecated Use the generateUniqueFileName instead.
    */
    generateCreateFilename(existingNames: string[], baseName: string): string;
    sortFiles(subEntries: FileEntry[]): void;
    getVCSSubEntries(repoNameWithOwner: string, itemName: string): Promise<FileExplorerNode[]>;
    generateUniqueName(baseName: string, isDirectory: boolean, directory?: FileSystemDirectoryHandle | null, entries?: FileEntry[], index?: number): Promise<string>;
    validateAction(actionType: ActionType, name: string, entries: FileEntry[]): string | null;
    getAction(actionType: ActionType): void;
    getSubEntries(dirHandle: FileSystemDirectoryHandle, idFocus?: string): Promise<FileEntry[]>;
}
//# sourceMappingURL=file-entry-manager.interface.d.ts.map