import { MutationKey, MutationObserver, QueryKey } from '@tanstack/query-core';
import { WeavyType } from '../client/weavy';
import { FileMutationContextType, FileType } from '../types/files.types';
import { AppType } from '../types/app.types';
export type MutateFileVersionVariables = {
    versionFile: FileType;
};
export type FileVersionMutationType = MutationObserver<FileType, Error, MutateFileVersionVariables, FileMutationContextType>;
export type FileVersionDeleteMutationType = MutationObserver<void, Error, MutateFileVersionVariables, void>;
export declare function getFileVersionsKey(app: AppType, file: FileType): QueryKey;
export declare function getFileVersionRestoreMutationOptions(weavy: WeavyType, app: AppType, file: FileType): {
    mutationKey: MutationKey;
    mutationFn: ({ versionFile }: MutateFileVersionVariables) => Promise<any>;
    onMutate: (variables: MutateFileVersionVariables) => Promise<FileMutationContextType>;
    onSuccess: (data: FileType, variables: MutateFileVersionVariables) => void;
    onError(error: Error, variables: MutateFileVersionVariables, context: FileMutationContextType | undefined): void;
    onSettled(): void;
};
export declare function getFileVersionRestoreMutation(weavy: WeavyType, app: AppType, file: FileType): FileVersionMutationType;
export declare function getFileVersionDeleteMutationOptions(weavy: WeavyType, app: AppType, file: FileType): {
    mutationKey: QueryKey;
    mutationFn: ({ versionFile }: MutateFileVersionVariables) => Promise<void>;
    onMutate: (variables: MutateFileVersionVariables) => Promise<void>;
    onSuccess: (data: void, variables: MutateFileVersionVariables) => void;
    onError(error: Error, variables: MutateFileVersionVariables): void;
};
export declare function getFileVersionDeleteMutation(weavy: WeavyType, app: AppType, file: FileType): FileVersionDeleteMutationType;
//# sourceMappingURL=file-versions.d.ts.map