/**
 * Represents the state of a mutation operation.
 * Mimics the essential return type of react-query's useMutation.
 */
export interface MutationState<TData, TError extends Error, TVariables> {
    /** Execute the mutation without waiting for the result */
    mutate: (variables: TVariables) => void;
    /** Execute the mutation and return a promise with the result */
    mutateAsync: (variables: TVariables) => Promise<TData>;
    /** Whether the mutation is currently executing */
    isPending: boolean;
    /** Whether the mutation completed successfully */
    isSuccess: boolean;
    /** Whether the mutation failed with an error */
    isError: boolean;
    /** The error if the mutation failed, null otherwise */
    error: TError | null;
    /** The data returned by the mutation if successful */
    data: TData | undefined;
    /** Reset the mutation state to initial values */
    reset: () => void;
}
/**
 * Internal helper hook that provides mutation-like functionality without react-query.
 * Tracks pending, success, and error states for async operations.
 */
export declare function useMutation<TData, TError extends Error, TVariables>(mutationFn: (variables: TVariables) => Promise<TData>): MutationState<TData, TError, TVariables>;
