import { MutationKey, MutationObserver } from '@tanstack/query-core';
import { WeavyContextType } from '../client/weavy';
import { FileMutationContextType, FileType } from '../types/files.types';
import { AppType } from '../types/app.types';

export type MutateFileVariables = {
    file: FileType;
};
export type RemoveFileMutationType = MutationObserver<void, Error, MutateFileVariables, FileMutationContextType>;
export type DeleteForeverFileMutationType = MutationObserver<void, Error, MutateFileVariables, FileMutationContextType>;
export declare function getTrashFileMutationOptions(weavyContext: WeavyContextType, app: AppType): {
    mutationKey: MutationKey;
    mutationFn: ({ file }: MutateFileVariables) => Promise<void>;
    onMutate: (variables: MutateFileVariables) => Promise<FileMutationContextType>;
    onSuccess: (data: void, variables: MutateFileVariables) => void;
    onError(error: Error, variables: MutateFileVariables): void;
};
export declare function getTrashFileMutation(weavyContext: WeavyContextType, app: AppType): RemoveFileMutationType;
export declare function getRestoreFileMutationOptions(weavyContext: WeavyContextType, app: AppType): {
    mutationKey: MutationKey;
    mutationFn: ({ file }: MutateFileVariables) => Promise<void>;
    onMutate: (variables: MutateFileVariables) => Promise<FileMutationContextType>;
    onSuccess: (data: void, variables: MutateFileVariables) => void;
    onError(error: Error, variables: MutateFileVariables): void;
};
export declare function getRestoreFileMutation(weavyContext: WeavyContextType, app: AppType): RemoveFileMutationType;
export declare function getDeleteForeverFileMutationOptions(weavyContext: WeavyContextType, app: AppType): {
    mutationKey: MutationKey;
    mutationFn: ({ file }: MutateFileVariables) => Promise<void>;
    onMutate: (variables: MutateFileVariables) => Promise<FileMutationContextType>;
    onSuccess: (_data: void, variables: MutateFileVariables) => void;
    onError(error: Error, variables: MutateFileVariables): void;
};
export declare function getDeleteForeverFileMutation(weavyContext: WeavyContextType, app: AppType): DeleteForeverFileMutationType;
//# sourceMappingURL=file-remove.d.ts.map