import { MutationOptions } from '@tanstack/query-core';
import { BetterFetchError } from 'better-auth/client';
import { UsernameAuthClient } from './username-auth-client';
/**
 * Parameters accepted by the username availability mutation.
 */
export type IsUsernameAvailableParams<TAuthClient extends UsernameAuthClient> = Parameters<TAuthClient["isUsernameAvailable"]>[0];
/**
 * Consumer options for `isUsernameAvailableOptions`.
 */
export type IsUsernameAvailableOptions<TAuthClient extends UsernameAuthClient> = Omit<ReturnType<typeof isUsernameAvailableOptions<TAuthClient>>, "mutationKey" | "mutationFn">;
/**
 * Mutation options factory for checking username availability.
 *
 * Modeled as a mutation because callers typically trigger the check on
 * user action (debounced input, form submit) rather than on mount.
 *
 * @param authClient - The Better Auth client.
 */
export declare function isUsernameAvailableOptions<TAuthClient extends UsernameAuthClient>(authClient: TAuthClient): MutationOptions<Awaited<ReturnType<(params: IsUsernameAvailableParams<TAuthClient>) => Promise<{
    available: boolean;
}>>>, BetterFetchError, Parameters<(params: IsUsernameAvailableParams<TAuthClient>) => Promise<{
    available: boolean;
}>>[0]>;
