import { QueryClient, QueryOptions, skipToken } from '@tanstack/query-core';
import { InferData } from '../../lib/auth-client';
import { ApiKeyAuthClient } from './api-key-auth-client';
/** Data returned by Better Auth's API key get endpoint. */
export type GetApiKeyData<TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient> = InferData<TAuthClient["apiKey"]["get"]>;
/** Parameters accepted by Better Auth's API key get endpoint. */
export type GetApiKeyParams<TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient> = Parameters<TAuthClient["apiKey"]["get"]>[0];
/** Query options for one API key, excluding the generated query key. */
export type GetApiKeyOptions<TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient> = Omit<QueryOptions<GetApiKeyData<TAuthClient>>, "queryKey"> & GetApiKeyParams<TAuthClient>;
/**
 * Query options factory for one API key visible to the current user.
 *
 * @param authClient - The Better Auth API key client.
 * @param userId - The signed-in user's ID. Used for cache partitioning.
 * @param params - Parameters forwarded to `authClient.apiKey.get`.
 */
export declare function getApiKeyOptions<TAuthClient extends ApiKeyAuthClient>(authClient: TAuthClient, userId?: string, params?: GetApiKeyParams<TAuthClient>): {
    queryKey: readonly ["auth", "user", string | undefined, "apiKey", "detail", {
        id: string;
        configId?: string | undefined;
    } | null];
    queryFn: typeof skipToken | (({ signal }: {
        client: QueryClient;
        queryKey: readonly unknown[];
        signal: AbortSignal;
        meta: import('@tanstack/query-core').QueryMeta | undefined;
        pageParam?: unknown;
        direction?: unknown;
    }) => Promise<InferData<TAuthClient["apiKey"]["get"]>>);
};
/** Get one API key from cache, fetching it when needed. */
export declare const ensureGetApiKey: <TAuthClient extends ApiKeyAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options: GetApiKeyOptions<TAuthClient>) => Promise<InferData<TAuthClient["apiKey"]["get"]>>;
/** Prefetch one API key into the query cache. */
export declare const prefetchGetApiKey: <TAuthClient extends ApiKeyAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options: GetApiKeyOptions<TAuthClient>) => Promise<void>;
/** Fetch and cache one API key, resolving with data or throwing. */
export declare const fetchGetApiKey: <TAuthClient extends ApiKeyAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options: GetApiKeyOptions<TAuthClient>) => Promise<InferData<TAuthClient["apiKey"]["get"]>>;
/** Read one API key synchronously from the query cache. */
export declare const getApiKey: <TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient>(queryClient: QueryClient, _authClient?: TAuthClient, userId?: string, params?: GetApiKeyParams<TAuthClient>) => InferData<TAuthClient["apiKey"]["get"]> | undefined;
