UNPKG

@nangohq/types

Version:

Types used in Nango applications

39 lines (38 loc) 1.32 kB
import type { Result } from '../result'; import type { DBTeam } from '../team/db'; import type { DBUser } from '../user/db'; export interface BillingClient { ingest: (events: BillingIngestEvent[]) => Promise<void>; upsertCustomer: (team: DBTeam, user: DBUser) => Promise<Result<BillingCustomer>>; getCustomer: (accountId: number) => Promise<Result<BillingCustomer>>; getSubscription: (accountId: number) => Promise<Result<BillingSubscription | null>>; getUsage: (subscriptionId: string, period?: 'previous') => Promise<Result<BillingUsageMetric[]>>; } export interface BillingCustomer { id: string; portalUrl: string | null; } export interface BillingSubscription { id: string; } export interface BillingUsageMetric { id: string; name: string; quantity: number; } export interface BillingIngestEvent { type: 'monthly_active_records' | 'billable_connections' | 'billable_actions'; idempotencyKey: string; accountId: number; timestamp: Date; properties: Record<string, string | number | Date>; } export interface BillingMetric { type: BillingIngestEvent['type']; value: number; properties: { accountId: number; timestamp?: Date | undefined; idempotencyKey?: string | undefined; } & BillingIngestEvent['properties']; }