UNPKG

amberflo-metering-typescript

Version:
49 lines (48 loc) 2.11 kB
import { IAxiosRetryConfig } from "axios-retry"; import BaseClient from "./baseClient"; import { CustomerDetailsApiPayload, CustomerDetails } from './model/customerApiPayload'; type NotFound = Record<string, never>; /** * See: https://docs.amberflo.io/reference/post_customers */ export declare class CustomerDetailsClient extends BaseClient { /** * Initialize a new `CustomerDetailsClient` * `debug`: Whether to issue debug level logs or not. * `retry`: Whether to retry idempotent requests on 5xx or network errors, or retry configuration (see https://github.com/softonic/axios-retry). */ constructor(apiKey: string, debug?: boolean, retry?: boolean | IAxiosRetryConfig); /** * List all customers. */ list(): Promise<CustomerDetails[]>; /** * Get customer by id. */ get(customerId: string): Promise<CustomerDetails | NotFound>; /** * Add a new customer. * See: https://docs.amberflo.io/reference/post_customers * `createInStripe`: Whether or not to add create the customer in Stripe and add a `stripeId` trait to the customer. */ add(payload: CustomerDetailsApiPayload, createInStripe?: boolean): Promise<CustomerDetails>; /** * Update an existing customer. * This has PUT semantics (i.e. it discards existing data). * See: https://docs.amberflo.io/reference/put_customers-customer-id */ update(payload: CustomerDetailsApiPayload): Promise<CustomerDetails>; /** * Convenience method. Performs a `get` followed by either `add` or `update`. * The update has PUT semantics (i.e. it discards existing data). */ addOrUpdate(payload: CustomerDetailsApiPayload): Promise<CustomerDetails>; /** * Convenience method. Performs a `get` followed by either `add` or `update`. * The update has PUT semantics (i.e. it discards existing data). * * This method is provided for backward compatibility. Please prefer using the `.addOrUpdate()` one instead. */ post: (payload: CustomerDetailsApiPayload) => Promise<CustomerDetails>; } export {};