amberflo-metering-typescript
Version:
Amberflo metering client for TypeScript
49 lines (48 loc) • 2.11 kB
TypeScript
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 {};