import { MutationOptions } from '@tanstack/query-core';
import { BetterFetchError } from 'better-auth/client';
import { ApiKeyAuthClient } from './api-key-auth-client';
type UpdateApiKeyInput = NonNullable<Parameters<ApiKeyAuthClient["apiKey"]["update"]>[0]>;
type UpdateApiKeyClientField = "configId" | "keyId" | "name" | "fetchOptions";
/** Fields accepted by Better Auth's client-side API key update endpoint. */
export type UpdateApiKeyParams = Pick<UpdateApiKeyInput, UpdateApiKeyClientField>;
export type UpdateApiKeyOptions<TAuthClient extends ApiKeyAuthClient> = Omit<ReturnType<typeof updateApiKeyOptions<TAuthClient>>, "mutationKey" | "mutationFn" | "meta">;
/** Mutation options factory for updating an API key. */
export declare function updateApiKeyOptions<TAuthClient extends ApiKeyAuthClient>(authClient: TAuthClient, userId?: string): MutationOptions<Awaited<ReturnType<(params: UpdateApiKeyParams) => Promise<{
    metadata: Record<string, any> | null;
    permissions: {
        [key: string]: string[];
    } | null;
    id: string;
    configId: string;
    name: string | null;
    start: string | null;
    prefix: string | null;
    referenceId: string;
    refillInterval: number | null;
    refillAmount: number | null;
    lastRefillAt: Date | null;
    enabled: boolean;
    rateLimitEnabled: boolean;
    rateLimitTimeWindow: number | null;
    rateLimitMax: number | null;
    requestCount: number;
    remaining: number | null;
    lastRequest: Date | null;
    expiresAt: Date | null;
    createdAt: Date;
    updatedAt: Date;
}>>>, BetterFetchError, Parameters<(params: UpdateApiKeyParams) => Promise<{
    metadata: Record<string, any> | null;
    permissions: {
        [key: string]: string[];
    } | null;
    id: string;
    configId: string;
    name: string | null;
    start: string | null;
    prefix: string | null;
    referenceId: string;
    refillInterval: number | null;
    refillAmount: number | null;
    lastRefillAt: Date | null;
    enabled: boolean;
    rateLimitEnabled: boolean;
    rateLimitTimeWindow: number | null;
    rateLimitMax: number | null;
    requestCount: number;
    remaining: number | null;
    lastRequest: Date | null;
    expiresAt: Date | null;
    createdAt: Date;
    updatedAt: Date;
}>>[0]>;
export {};
