import { MutationOptions } from '@tanstack/query-core';
import { BetterFetchError } from 'better-auth/client';
import { UsernameAuthClient } from './username-auth-client';
/**
 * Parameters accepted by the username/password sign-in mutation.
 */
export type SignInUsernameParams<TAuthClient extends UsernameAuthClient> = Parameters<TAuthClient["signIn"]["username"]>[0];
/**
 * Consumer options for `signInUsernameOptions`.
 */
export type SignInUsernameOptions<TAuthClient extends UsernameAuthClient> = Omit<ReturnType<typeof signInUsernameOptions<TAuthClient>>, "mutationKey" | "mutationFn" | "meta">;
/**
 * Mutation options factory for username/password sign-in.
 *
 * @param authClient - The Better Auth client.
 */
export declare function signInUsernameOptions<TAuthClient extends UsernameAuthClient>(authClient: TAuthClient): MutationOptions<Awaited<ReturnType<(params: SignInUsernameParams<TAuthClient>) => Promise<Omit<{
    redirect: boolean;
    token: string;
    url: string | undefined;
    user: {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        email: string;
        emailVerified: boolean;
        name: string;
        image?: string | null | undefined;
    } & {
        username: string;
        displayUsername: string;
    };
}, "user"> & {
    user: import('better-auth').StripEmptyObjects<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        email: string;
        emailVerified: boolean;
        name: string;
        image?: string | null | undefined;
    } & {} & {
        displayUsername?: string | null | undefined;
        username?: string | null | undefined;
    }>;
}>>>, BetterFetchError, Parameters<(params: SignInUsernameParams<TAuthClient>) => Promise<Omit<{
    redirect: boolean;
    token: string;
    url: string | undefined;
    user: {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        email: string;
        emailVerified: boolean;
        name: string;
        image?: string | null | undefined;
    } & {
        username: string;
        displayUsername: string;
    };
}, "user"> & {
    user: import('better-auth').StripEmptyObjects<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        email: string;
        emailVerified: boolean;
        name: string;
        image?: string | null | undefined;
    } & {} & {
        displayUsername?: string | null | undefined;
        username?: string | null | undefined;
    }>;
}>>[0]>;
