import Service from "../../service";
import Client from "../../client";
import { IRequest } from "../../typings/requestOptions";
import { ListMandatesResponse } from "../../typings/balancePlatform/models";
import { Mandate } from "../../typings/balancePlatform/models";
import { MandateUpdate } from "../../typings/balancePlatform/models";
/**
 * API handler for DirectDebitMandatesApi
 */
export declare class DirectDebitMandatesApi extends Service {
    private readonly API_BASEPATH;
    private baseUrl;
    constructor(client: Client);
    /**
    * @summary Cancel a mandate
    * @param mandateId {@link string } The unique identifier of the mandate.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link void }
    */
    cancelMandate(mandateId: string, requestOptions?: IRequest.Options): Promise<void>;
    /**
    * @summary Get a list of mandates
    * @param requestOptions {@link IRequest.Options }
    * @param balanceAccountId {@link string } The unique identifier of the balance account linked to the payment instrument.
    * @param paymentInstrumentId {@link string } The unique identifier of the payment instrument linked to the mandate.
    * @param cursor {@link string } The pagination cursor returned in a previous GET &#x60;/mandates&#x60; request.
    * @return {@link ListMandatesResponse }
    */
    getListOfMandates(balanceAccountId?: string, paymentInstrumentId?: string, cursor?: string, requestOptions?: IRequest.Options): Promise<ListMandatesResponse>;
    /**
    * @summary Get a specific mandate
    * @param mandateId {@link string } The unique identifier of the mandate.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link Mandate }
    */
    getMandateById(mandateId: string, requestOptions?: IRequest.Options): Promise<Mandate>;
    /**
    * @summary Amend a mandate
    * @param mandateId {@link string } The unique identifier of the mandate.
    * @param mandateUpdate {@link MandateUpdate }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link void }
    */
    updateMandate(mandateId: string, mandateUpdate: MandateUpdate, requestOptions?: IRequest.Options): Promise<void>;
}
