@better-auth-ui/core
Version:
Authentication components and data utilities for [Better Auth](https://better-auth.com), available for React and Solid.
63 lines (62 loc) • 2.39 kB
TypeScript
import { MutationOptions } from '@tanstack/query-core';
import { BetterFetchError } from 'better-auth/client';
import { ApiKeyAuthClient } from './api-key-auth-client';
type CreateApiKeyInput = NonNullable<Parameters<ApiKeyAuthClient["apiKey"]["create"]>[0]>;
type CreateApiKeyClientField = "configId" | "name" | "expiresIn" | "organizationId" | "prefix" | "metadata" | "fetchOptions";
/** Fields accepted by Better Auth's client-side API key creation endpoint. */
export type CreateApiKeyParams = Pick<CreateApiKeyInput, CreateApiKeyClientField> | undefined;
export type CreateApiKeyOptions<TAuthClient extends ApiKeyAuthClient> = Omit<ReturnType<typeof createApiKeyOptions<TAuthClient>>, "mutationKey" | "mutationFn" | "meta">;
/**
* Mutation options factory for creating an API key.
*
* @param authClient - The Better Auth API key client.
* @param userId - The current signed-in user's ID. Used for cache partitioning.
*/
export declare function createApiKeyOptions<TAuthClient extends ApiKeyAuthClient>(authClient: TAuthClient, userId?: string): MutationOptions<Awaited<ReturnType<(params: CreateApiKeyParams) => Promise<{
key: string;
metadata: any;
permissions: any;
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: CreateApiKeyParams) => Promise<{
key: string;
metadata: any;
permissions: any;
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 {};