/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import { RootDirectoryInfo } from "../models/root-directory-info.model.js";
export interface IRootDirectoryHandler {
    addRootDirectory(rootDirInfo: RootDirectoryInfo): Promise<void | RootDirectoryInfo[]>;
    getAllRootDirectoryHandles(): Promise<RootDirectoryInfo[] | void>;
    getRootDirectoryHandle(uniqueFolderName: string): Promise<RootDirectoryInfo | null>;
    deleteRootDirectoryHandle(name: string): Promise<void>;
    /**
     * Checks if permission is required to access the given root directory handles
     * @param rootDirectoryHandles List of root directory objects to validate access permission
     * @returns true if all the root directories have required permissions, else false
     */
    isAccessPermissionRequired(rootDirectoryHandles: RootDirectoryInfo[]): Promise<boolean>;
    /**
     * Requests access permission to user for the root directory handles that do not have permission
     * @param rootDirectoryHandles List of root directory handles to request access permission
     * @returns List of root directory handles which have access permission
     */
    requestAccessPermission(rootDirectoryHandles: RootDirectoryInfo[]): Promise<RootDirectoryInfo[]>;
}
export default IRootDirectoryHandler;
//# sourceMappingURL=root-dir-handler.d.ts.map