import { type APIPromise, APIResource, type FetchParams } from "../../core";
import type { Checkout, CheckoutAccepted, CheckoutCreateRequest, CheckoutSuccess, DetailsError, ErrorBody, ErrorExtended, ErrorForbidden, ProcessCheckout } from "../../types";
export type GetPaymentMethodsQueryParams = {
    amount?: number;
    currency?: string;
};
export type GetPaymentMethodsResponse = {
    available_payment_methods?: {
        /**
         * The ID of the payment method.
         */
        id: string;
    }[];
};
export type ListCheckoutsQueryParams = {
    checkout_reference?: string;
};
export type ListCheckoutsResponse = CheckoutSuccess[];
export type ProcessCheckoutError = ErrorExtended /**
 * List of error messages.
 */ | ErrorExtended[];
export declare class Checkouts extends APIResource {
    /**
     * Get payment methods available for the given merchant to use with a checkout.
     */
    listAvailablePaymentMethods(merchantCode: string, query?: GetPaymentMethodsQueryParams, params?: FetchParams): APIPromise<GetPaymentMethodsResponse, DetailsError | ErrorBody>;
    /**
     * Lists created checkout resources according to the applied `checkout_reference`.
     */
    list(query?: ListCheckoutsQueryParams, params?: FetchParams): APIPromise<CheckoutSuccess[], ErrorBody>;
    /**
     * Creates a new payment checkout resource. The unique `checkout_reference` created by this request, is used for further manipulation of the checkout.
     *
     * For 3DS checkouts, add the `redirect_url` parameter to your request body schema.
     *
     * Follow by processing a checkout to charge the provided payment instrument.
     *
     */
    create(body: CheckoutCreateRequest, params?: FetchParams): APIPromise<Checkout, ErrorExtended | ErrorBody | ErrorForbidden>;
    /**
     * Retrieves an identified checkout resource. Use this request after processing a checkout to confirm its status and inform the end user respectively.
     */
    get(id: string, params?: FetchParams): APIPromise<CheckoutSuccess, ErrorBody>;
    /**
     * Processing a checkout will attempt to charge the provided payment instrument for the amount of the specified checkout resource initiated in the `Create a checkout` endpoint.
     *
     * Follow this request with `Retrieve a checkout` to confirm its status.
     *
     */
    process(id: string, body: ProcessCheckout, params?: FetchParams): APIPromise<CheckoutSuccess | CheckoutAccepted, ProcessCheckoutError | ErrorBody>;
    /**
     * Deactivates an identified checkout resource. If the checkout has already been processed it can not be deactivated.
     */
    deactivate(id: string, params?: FetchParams): APIPromise<Checkout, ErrorBody>;
}
//# sourceMappingURL=index.d.cts.map