import { type APIPromise, APIResource, type FetchParams } from "../../core";
import type { Customer, ErrorBody, ErrorForbidden, PaymentInstrumentResponse, PersonalDetails } from "../../types";
export type UpdateCustomerParams = {
    personal_details?: PersonalDetails;
};
export type ListPaymentInstrumentsResponse = PaymentInstrumentResponse[];
export declare class Customers extends APIResource {
    /**
     * Creates a new saved customer resource which you can later manipulate and save payment instruments to.
     */
    create(body: Customer, params?: FetchParams): APIPromise<Customer, ErrorBody | ErrorForbidden>;
    /**
     * Retrieves an identified saved customer resource through the unique `customer_id` parameter, generated upon customer creation.
     */
    get(customerId: string, params?: FetchParams): APIPromise<Customer, ErrorBody | ErrorForbidden>;
    /**
     * Updates an identified saved customer resource's personal details.
     *
     * The request only overwrites the parameters included in the request, all other parameters will remain with their initially assigned values.
     *
     */
    update(customerId: string, body: UpdateCustomerParams, params?: FetchParams): APIPromise<Customer, ErrorBody | ErrorForbidden>;
    /**
     * Lists all payment instrument resources that are saved for an identified customer.
     */
    listPaymentInstruments(customerId: string, params?: FetchParams): APIPromise<PaymentInstrumentResponse[], ErrorBody | ErrorForbidden>;
    /**
     * Deactivates an identified card payment instrument resource for a customer.
     */
    deactivatePaymentInstrument(customerId: string, token: string, params?: FetchParams): APIPromise<void, ErrorBody | ErrorForbidden>;
}
//# sourceMappingURL=index.d.ts.map