import { C as Subscription, _ as PaystackPlan, b as PaystackTransaction, h as PaystackInitializeResult, l as parsePaystackMetadata, t as PaystackMetadata, v as PaystackProduct, x as PaystackTransactionResponse } from "./metadata-BQrgMYcE.mjs"; import { BetterFetch, BetterFetchOption, BetterFetchResponse } from "@better-fetch/fetch"; import { BetterAuthClientPlugin } from "better-auth/client"; //#region src/client.d.ts /** * Helper type to handle the conditional return type based on 'throw' option. */ type FetchResult = O extends { throw: true; } ? T : BetterFetchResponse; /** * Paystack Client Action Definitions */ interface PaystackActions { /** * Initialize a transaction. */ initializeTransaction: (data: Record & { callbackUrl?: string; callbackURL?: string; product?: string; referenceId?: string; }, options?: O) => Promise>; /** * Verify a transaction by reference. */ verifyTransaction: (data: { reference: string; }, options?: O) => Promise>; /** * List transactions for the current user/reference. */ listTransactions: (data?: { query?: Record; }, options?: O) => Promise>; /** * List subscriptions for the current user/reference. */ listSubscriptions: (data?: { query?: Record; }, options?: O) => Promise>; /** * Get a manage link/billing portal link for a subscription. */ getSubscriptionManageLink: (data: { subscriptionCode: string; }, options?: O) => Promise>; /** * Get the plugin configuration (plans and products). */ config: () => Promise>>; /** * List available products. */ listProducts: (options?: O) => Promise>; /** * List available plans. */ listPlans: (options?: O) => Promise>; } /** * Paystack Client Plugin Actions including namespaces */ interface PaystackClientActions extends PaystackActions { transaction: { initialize: PaystackActions["initializeTransaction"]; verify: PaystackActions["verifyTransaction"]; list: PaystackActions["listTransactions"]; }; subscription: { upgrade: PaystackActions["initializeTransaction"]; create: PaystackActions["initializeTransaction"]; cancel: (data: { subscriptionCode: string; emailToken?: string; atPeriodEnd?: boolean; }, options?: O) => Promise>; restore: (data: { subscriptionCode: string; emailToken?: string; }, options?: O) => Promise>; list: PaystackActions["listSubscriptions"]; billingPortal: PaystackActions["getSubscriptionManageLink"]; manageLink: PaystackActions["getSubscriptionManageLink"]; /** * @deprecated Use `subscription.cancel` instead. */ disable: PaystackClientActions["subscription"]["cancel"]; /** * @deprecated Use `subscription.restore` instead. */ enable: PaystackClientActions["subscription"]["restore"]; }; paystack: PaystackClientActions; } declare module "better-auth/client" { interface BetterAuthClient { paystack: PaystackClientActions; subscription: PaystackClientActions["subscription"]; transaction: PaystackClientActions["transaction"]; } } declare module "better-auth" { interface BetterAuthClientPlugins { paystack: ReturnType; } } /** * Better Auth Paystack Client Plugin */ declare const paystackClient: (_options?: O) => BetterAuthClientPlugin & { getActions: ($fetch: BetterFetch, $store: unknown, options: unknown) => PaystackClientActions; }; declare const paystack: typeof paystackClient; //#endregion export { FetchResult, PaystackActions, PaystackClientActions, type PaystackMetadata, parsePaystackMetadata, paystack, paystackClient }; //# sourceMappingURL=client.d.mts.map