import { INode } from '@nextcloud/files'; export type ConflictInput = File | FileSystemEntry | INode; export interface ConflictResolutionResult { /** * The selected incoming nodes. * Meaning this selected incoming nodes should overwrite the existing nodes. */ selected: T[]; /** * The incoming nodes which should be renamed. * Meaning those nodes still should be uploaded but with a new unique name to not override existing nodes. */ renamed: T[]; /** * The nodes not selected for upload. * Meaning those incoming nodes should be skipped from the action and not be used. */ skipped: T[]; } export interface ConflictPickerOptions { /** * The container for the conflict picker dialog. * Defaults to the ``. */ container?: string; /** * When this is set to true a hint is shown that conflicts in directories are handles recursively * You still need to call this function for each directory separately. */ recursive?: boolean; } /** * Open the conflict resolver for uploading nodes. * Given the current content of the directory and the conflicting new nodes, * this will ask the user for resolving the conflicts and return the conflict resolution. * * @param dirname - The directory name with conflicts (used for the dialog title) * @param conflicts - The incoming nodes * @param content - The current content of the directory (existing nodes) * @param options Optional settings for the conflict picker * * @return The conflict resolution or null if the user aborted. */ export declare function openConflictPicker(dirname: string | undefined, conflicts: T[], content: INode[], options?: ConflictPickerOptions): Promise | null>;