@paykit-sdk/core
Version:
The Payment Toolkit for Typescript
91 lines (87 loc) • 3.77 kB
TypeScript
import { Checkout } from '../resources/checkout.js';
import { Customer } from '../resources/customer.js';
import { Subscription } from '../resources/subscription.js';
import '../resources/webhook.js';
import '../resources/invoice.js';
import '../resources/metadata.js';
import { Payment } from '../resources/payment.js';
import { Refund } from '../resources/refund.js';
import '../resources/billing.js';
import 'zod';
import { P as PayKitProvider, W as WebhookSetupConfig, b as Webhook } from '../paykit-provider-CXbu2dh_.js';
import { PayKitAdapterMetadata } from '../provider-schema.js';
import '../error.js';
import '../http-client.js';
import '../oauth2-token-manager.js';
import { EndpointPath, EndpointHandler } from './endpoints.js';
import '../tools/utils.js';
import '../tools/try-catch.js';
import '../types.js';
/**
* Creates type-safe endpoint handlers for any PayKit instance
* Usage in your API route:
*
* ```ts
* import { paykit } from '@/lib/paykit';
* import { createEndpointHandlers } from '@paykit-sdk/core';
*
* const endpoints = createEndpointHandlers(paykit);
* ```
*/
declare function createEndpointHandlers(paykit: PayKit<any>): {
[K in EndpointPath]: EndpointHandler<K>;
};
/**
* @template TMetadata - The registry of provider-specific metadata types
* @template TNative - The type of the underlying native SDK client
*/
declare class PayKit<P extends PayKitProvider<any, any, any>> {
private provider;
private adapterMetadata?;
constructor(provider: P, adapterMetadata?: PayKitAdapterMetadata | undefined);
private readonly sdkVersion;
/**
* Access the underlying native SDK (e.g., Stripe, Adyen) directly
* with full type safety.
*/
get _native(): P['_native'];
private _track;
/**
* Access the provider's name (e.g., 'stripe')
*/
get providerName(): string;
get customers(): {
create: (params: Parameters<P["createCustomer"]>[0]) => Promise<Customer>;
update: (id: string, params: Parameters<P["updateCustomer"]>[1]) => Promise<Customer>;
retrieve: (id: string) => Promise<Customer | null>;
delete: (id: string) => Promise<null>;
};
get checkouts(): {
create: (params: Parameters<P["createCheckout"]>[0]) => Promise<Checkout>;
retrieve: (id: string) => Promise<Checkout | null>;
update: (id: string, params: Parameters<P["updateCheckout"]>[1]) => Promise<Checkout>;
delete: (id: string) => Promise<null>;
};
get payments(): {
create: (params: Parameters<P["createPayment"]>[0]) => Promise<Payment>;
retrieve: (id: string) => Promise<Payment | null>;
update: (id: string, params: Parameters<P["updatePayment"]>[1]) => Promise<Payment>;
capture: (id: string, params: Parameters<P["capturePayment"]>[1]) => Promise<Payment>;
delete: (id: string) => Promise<null>;
cancel: (id: string) => Promise<Payment>;
};
get subscriptions(): {
create: (params: Parameters<P["createSubscription"]>[0]) => Promise<Subscription>;
update: (id: string, params: Parameters<P["updateSubscription"]>[1]) => Promise<Subscription>;
cancel: (id: string) => Promise<Subscription>;
retrieve: (id: string) => Promise<Subscription | null>;
delete: (id: string) => Promise<null>;
};
get refunds(): {
create: (params: Parameters<P["createRefund"]>[0]) => Promise<Refund>;
};
get webhooks(): {
setup: (config: Omit<WebhookSetupConfig<P extends PayKitProvider<any, any, infer R extends Record<string, any>> ? R : any>, "provider">) => Webhook<P extends PayKitProvider<any, any, infer R extends Record<string, any>> ? R : any>;
};
}
export { PayKit as P, createEndpointHandlers };