import type { _FSItem } from "./FSItem.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { FSVolumeOpenModes } from "./FSVolumeOpenModes.js";
export interface _FSVolumeOpenCloseOperations {
    /**
     * Opens a file for access. - Parameters: - item: The item to open. - modes: The set of mode flags to open the item with. - reply: A block or closure to indicate success or failure. If opening fails, pass an error as the one parameter to the reply handler. If opening succeeds, pass `nil`. For an `async` Swift implementation, there's no reply handler; simply throw an error or return normally.
     */
    openItem$withModes$replyHandler$?(item: _FSItem, modes: FSVolumeOpenModes, reply: ((error: _NSError) => void) | null): void;
    /**
     * Closes a file from further access. - Parameters: - item: The item to close. - modes: The set of mode flags to keep after this close. - reply: A block or closure to indicate success or failure. If closing fails, pass an error as the one parameter to the reply handler. If closing succeeds, pass `nil`. For an `async` Swift implementation, there's no reply handler; simply throw an error or return normally.
     */
    closeItem$keepingModes$replyHandler$?(item: _FSItem, modes: FSVolumeOpenModes, reply: ((error: _NSError) => void) | null): void;
    /**
     * A Boolean value that instructs FSKit not to call this protocol's methods, even if the volume conforms to it. FSKit reads this value after the file system replies to the `loadResource` message. Changing the returned value during the runtime of the volume has no effect.
     */
    openCloseInhibited?(): boolean;
    setOpenCloseInhibited$?(value: boolean): void;
}
