/** Estado de una mutacion POST/PUT/DELETE. */
export interface MutationState<TData, TVariables> {
  /** Ejecutar la mutacion (fire-and-forget) */
  mutate: (variables: TVariables) => void
  /** Ejecutar la mutacion y esperar el resultado */
  mutate_async: (variables: TVariables) => Promise<TData>
  /** Datos del resultado de la ultima mutacion exitosa */
  data: TData | null
  /** Error si la ultima mutacion fallo */
  error: Error | null
  /** Si hay una mutacion en progreso */
  loading: boolean
  /** Resetear al estado inicial (idle) */
  reset: () => void
}
