import type { _NSError } from "./NSError.js";
import type { _NSFileManager } from "./NSFileManager.js";
import type { _NSString } from "./NSString.js";
import type { _NSURL } from "./NSURL.js";
export interface _NSFileManagerDelegate {
    /**
     * fileManager:shouldCopyItemAtPath:toPath: gives the delegate an opportunity to filter the resulting copy. Returning YES from this method will allow the copy to happen. Returning NO from this method causes the item in question to be skipped. If the item skipped was a directory, no children of that directory will be copied, nor will the delegate be notified of those children. If the delegate does not implement this method, the NSFileManager instance acts as if this method returned YES.
     */
    fileManager$shouldCopyItemAtPath$toPath$?(fileManager: _NSFileManager, srcPath: _NSString, dstPath: _NSString): boolean;
    fileManager$shouldCopyItemAtURL$toURL$?(fileManager: _NSFileManager, srcURL: _NSURL, dstURL: _NSURL): boolean;
    /**
     * fileManager:shouldProceedAfterError:copyingItemAtPath:toPath: gives the delegate an opportunity to recover from or continue copying after an error. If an error occurs, the error object will contain an NSError indicating the problem. The source path and destination paths are also provided. If this method returns YES, the NSFileManager instance will continue as if the error had not occurred. If this method returns NO, the NSFileManager instance will stop copying, return NO from copyItemAtPath:toPath:error: and the error will be provied there. If the delegate does not implement this method, the NSFileManager instance acts as if this method returned NO.
     */
    fileManager$shouldProceedAfterError$copyingItemAtPath$toPath$?(fileManager: _NSFileManager, error: _NSError, srcPath: _NSString, dstPath: _NSString): boolean;
    fileManager$shouldProceedAfterError$copyingItemAtURL$toURL$?(fileManager: _NSFileManager, error: _NSError, srcURL: _NSURL, dstURL: _NSURL): boolean;
    /**
     * fileManager:shouldMoveItemAtPath:toPath: gives the delegate an opportunity to not move the item at the specified path. If the source path and the destination path are not on the same device, a copy is performed to the destination path and the original is removed. If the copy does not succeed, an error is returned and the incomplete copy is removed, leaving the original in place. If the delegate does not implement this method, the NSFileManager instance acts as if this method returned YES.
     */
    fileManager$shouldMoveItemAtPath$toPath$?(fileManager: _NSFileManager, srcPath: _NSString, dstPath: _NSString): boolean;
    fileManager$shouldMoveItemAtURL$toURL$?(fileManager: _NSFileManager, srcURL: _NSURL, dstURL: _NSURL): boolean;
    /**
     * fileManager:shouldProceedAfterError:movingItemAtPath:toPath: functions much like fileManager:shouldProceedAfterError:copyingItemAtPath:toPath: above. The delegate has the opportunity to remedy the error condition and allow the move to continue. If the delegate does not implement this method, the NSFileManager instance acts as if this method returned NO.
     */
    fileManager$shouldProceedAfterError$movingItemAtPath$toPath$?(fileManager: _NSFileManager, error: _NSError, srcPath: _NSString, dstPath: _NSString): boolean;
    fileManager$shouldProceedAfterError$movingItemAtURL$toURL$?(fileManager: _NSFileManager, error: _NSError, srcURL: _NSURL, dstURL: _NSURL): boolean;
    /**
     * fileManager:shouldLinkItemAtPath:toPath: acts as the other "should" methods, but this applies to the file manager creating hard links to the files in question. If the delegate does not implement this method, the NSFileManager instance acts as if this method returned YES.
     */
    fileManager$shouldLinkItemAtPath$toPath$?(fileManager: _NSFileManager, srcPath: _NSString, dstPath: _NSString): boolean;
    fileManager$shouldLinkItemAtURL$toURL$?(fileManager: _NSFileManager, srcURL: _NSURL, dstURL: _NSURL): boolean;
    /**
     * fileManager:shouldProceedAfterError:linkingItemAtPath:toPath: allows the delegate an opportunity to remedy the error which occurred in linking srcPath to dstPath. If the delegate returns YES from this method, the linking will continue. If the delegate returns NO from this method, the linking operation will stop and the error will be returned via linkItemAtPath:toPath:error:. If the delegate does not implement this method, the NSFileManager instance acts as if this method returned NO.
     */
    fileManager$shouldProceedAfterError$linkingItemAtPath$toPath$?(fileManager: _NSFileManager, error: _NSError, srcPath: _NSString, dstPath: _NSString): boolean;
    fileManager$shouldProceedAfterError$linkingItemAtURL$toURL$?(fileManager: _NSFileManager, error: _NSError, srcURL: _NSURL, dstURL: _NSURL): boolean;
    /**
     * fileManager:shouldRemoveItemAtPath: allows the delegate the opportunity to not remove the item at path. If the delegate returns YES from this method, the NSFileManager instance will attempt to remove the item. If the delegate returns NO from this method, the remove skips the item. If the item is a directory, no children of that item will be visited. If the delegate does not implement this method, the NSFileManager instance acts as if this method returned YES.
     */
    fileManager$shouldRemoveItemAtPath$?(fileManager: _NSFileManager, path: _NSString): boolean;
    fileManager$shouldRemoveItemAtURL$?(fileManager: _NSFileManager, URL: _NSURL): boolean;
    /**
     * fileManager:shouldProceedAfterError:removingItemAtPath: allows the delegate an opportunity to remedy the error which occurred in removing the item at the path provided. If the delegate returns YES from this method, the removal operation will continue. If the delegate returns NO from this method, the removal operation will stop and the error will be returned via linkItemAtPath:toPath:error:. If the delegate does not implement this method, the NSFileManager instance acts as if this method returned NO.
     */
    fileManager$shouldProceedAfterError$removingItemAtPath$?(fileManager: _NSFileManager, error: _NSError, path: _NSString): boolean;
    fileManager$shouldProceedAfterError$removingItemAtURL$?(fileManager: _NSFileManager, error: _NSError, URL: _NSURL): boolean;
}
