import { MutationOptions, MutationStatus, MutationMeta } from './types'; import { MutationCache } from './mutationCache'; import { MutationObserver } from './mutationObserver'; interface MutationConfig { mutationId: number; mutationCache: MutationCache; options: MutationOptions; defaultOptions?: MutationOptions; state?: MutationState; meta?: MutationMeta; } export interface MutationState { context: TContext | undefined; data: TData | undefined; error: TError | null; failureCount: number; isPaused: boolean; status: MutationStatus; variables: TVariables | undefined; } interface FailedAction { type: 'failed'; } interface LoadingAction { type: 'loading'; variables?: TVariables; context?: TContext; } interface SuccessAction { type: 'success'; data: TData; } interface ErrorAction { type: 'error'; error: TError; } interface PauseAction { type: 'pause'; } interface ContinueAction { type: 'continue'; } interface SetStateAction { type: 'setState'; state: MutationState; } export declare type Action = ContinueAction | ErrorAction | FailedAction | LoadingAction | PauseAction | SetStateAction | SuccessAction; export declare class Mutation { state: MutationState; options: MutationOptions; mutationId: number; meta: MutationMeta | undefined; private observers; private mutationCache; private retryer?; constructor(config: MutationConfig); setState(state: MutationState): void; addObserver(observer: MutationObserver): void; removeObserver(observer: MutationObserver): void; cancel(): Promise; continue(): Promise; execute(): Promise; private executeMutation; private dispatch; } export declare function getDefaultState(): MutationState; export {};