import { Nullable } from 'tsdef';
import { FileData } from './file.types';
export interface MouseClickFilePayload {
    file: FileData;
    fileDisplayIndex: number;
    altKey: boolean;
    ctrlKey: boolean;
    shiftKey: boolean;
    clickType: 'single' | 'double';
    targetElement: EventTarget;
}
export interface KeyboardClickFilePayload {
    file: FileData;
    fileDisplayIndex: number;
    enterKey: boolean;
    altKey: boolean;
    ctrlKey: boolean;
    shiftKey: boolean;
}
export interface StartDragNDropPayload {
    sourceInstanceId: string;
    source: Nullable<FileData>;
    draggedFile: FileData;
    selectedFiles: FileData[];
}
export type EndDragNDropPayload = StartDragNDropPayload & {
    destination: FileData;
    copy: boolean;
};
export type MoveFilesPayload = EndDragNDropPayload & {
    files: FileData[];
};
export type RenameFilePayload = {
    file: FileData;
    targetName: string;
};
export type StartRenamingFilePayload = {
    fileId: string;
};
export type EndRenamingFilePayload = {
    targetName?: string;
};
export type ChangeSelectionPayload = {
    selection: Set<string>;
};
export interface OpenFilesPayload {
    targetFile?: FileData;
    files: FileData[];
}
export interface OpenFileContextMenuPayload {
    clientX: number;
    clientY: number;
    triggerFileId: Nullable<string>;
}
