import type { PayoutData } from '../models/PayoutData';
import type { PullPaymentData } from '../models/PullPaymentData';
import type { PullPaymentDataList } from '../models/PullPaymentDataList';
export declare class PullPaymentsManagementService {
    /**
     * Get store's pull payments
     * Get the pull payments of a store
     * @returns PullPaymentDataList List of pull payments
     * @throws ApiError
     */
    static pullPaymentsGetPullPayments({ storeId, includeArchived, }: {
        /** The store ID **/
        storeId: string;
        /** Whether this should list archived pull payments **/
        includeArchived?: boolean;
    }): Promise<PullPaymentDataList>;
    /**
     * Create a new pull payment
     * A pull payment allows its receiver to ask for payouts up to `amount` of `currency` every `period`.
     * @returns PullPaymentData The create pull payment
     * @throws ApiError
     */
    static pullPaymentsCreatePullPayment({ storeId, requestBody, }: {
        /** The store ID **/
        storeId: string;
        requestBody?: {
            /**
             * The name of the pull payment
             */
            name?: string | null;
            /**
             * The amount in `currency` of this pull payment as a decimal string
             */
            amount?: string;
            /**
             * The currency of the amount. In this current release, this parameter must be set to a cryptoCode like (`BTC`).
             */
            currency?: string;
            /**
             * The length of each period in seconds.
             */
            period?: number | null;
            /**
             * The unix timestamp when this pull payment is effective. Starts now if null or unspecified.
             */
            startsAt?: number | null;
            /**
             * The unix timestamp when this pull payment is expired. Never expires if null or unspecified.
             */
            expiresAt?: number | null;
            /**
             * The list of supported payment methods supported. In this current release, this must be set to an array with a single entry equals to `currency` (eg. `[ "BTC" ]`)
             */
            paymentMethods?: Array<string>;
        };
    }): Promise<PullPaymentData>;
    /**
     * Archive a pull payment
     * Archive this pull payment (Will cancel all payouts awaiting for payment)
     * @returns any The pull payment has been archived
     * @throws ApiError
     */
    static pullPaymentsArchivePullPayment({ storeId, pullPaymentId, }: {
        /** The ID of the store **/
        storeId: string;
        /** The ID of the pull payment **/
        pullPaymentId: string;
    }): Promise<any>;
    /**
     * Approve Payout
     * Approve a payout
     * @returns PayoutData The payout has been approved, transitioning to `AwaitingPayment` state.
     * @throws ApiError
     */
    static pullPaymentsApprovePayout({ storeId, payoutId, requestBody, }: {
        /** The ID of the store **/
        storeId: string;
        /** The ID of the payout **/
        payoutId: string;
        requestBody?: {
            /**
             * The revision number of the payout being modified
             */
            revision?: number;
            /**
             * The rate rule to calculate the rate of the payout. This can also be a fixed decimal. (if null or unspecified, will use the same rate setting as the store's settings)
             */
            rateRule?: string | null;
        };
    }): Promise<PayoutData>;
    /**
     * Cancel Payout
     * Cancel the payout
     * @returns any The payout has been cancelled
     * @throws ApiError
     */
    static pullPaymentsCancelPayout({ storeId, payoutId, }: {
        /** The ID of the store **/
        storeId: string;
        /** The ID of the payout **/
        payoutId: string;
    }): Promise<any>;
}
