import Service from "../../service";
import Client from "../../client";
import { IRequest } from "../../typings/requestOptions";
import { ListNetworkTokensResponse } from "../../typings/balancePlatform/models";
import { NetworkTokenActivationDataRequest } from "../../typings/balancePlatform/models";
import { NetworkTokenActivationDataResponse } from "../../typings/balancePlatform/models";
import { PaymentInstrument } from "../../typings/balancePlatform/models";
import { PaymentInstrumentInfo } from "../../typings/balancePlatform/models";
import { PaymentInstrumentRevealInfo } from "../../typings/balancePlatform/models";
import { PaymentInstrumentRevealRequest } from "../../typings/balancePlatform/models";
import { PaymentInstrumentRevealResponse } from "../../typings/balancePlatform/models";
import { PaymentInstrumentUpdateRequest } from "../../typings/balancePlatform/models";
import { TransactionRulesResponse } from "../../typings/balancePlatform/models";
import { UpdatePaymentInstrument } from "../../typings/balancePlatform/models";
/**
 * API handler for PaymentInstrumentsApi
 */
export declare class PaymentInstrumentsApi extends Service {
    private readonly API_BASEPATH;
    private baseUrl;
    constructor(client: Client);
    /**
    * @summary Create network token provisioning data
    * @param id {@link string } The unique identifier of the payment instrument.
    * @param networkTokenActivationDataRequest {@link NetworkTokenActivationDataRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link NetworkTokenActivationDataResponse }
    */
    createNetworkTokenProvisioningData(id: string, networkTokenActivationDataRequest: NetworkTokenActivationDataRequest, requestOptions?: IRequest.Options): Promise<NetworkTokenActivationDataResponse>;
    /**
    * @summary Create a payment instrument
    * @param paymentInstrumentInfo {@link PaymentInstrumentInfo }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link PaymentInstrument }
    */
    createPaymentInstrument(paymentInstrumentInfo: PaymentInstrumentInfo, requestOptions?: IRequest.Options): Promise<PaymentInstrument>;
    /**
    * @summary Get all transaction rules for a payment instrument
    * @param id {@link string } The unique identifier of the payment instrument.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link TransactionRulesResponse }
    */
    getAllTransactionRulesForPaymentInstrument(id: string, requestOptions?: IRequest.Options): Promise<TransactionRulesResponse>;
    /**
    * @summary Get network token activation data
    * @param id {@link string } The unique identifier of the payment instrument.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link NetworkTokenActivationDataResponse }
    */
    getNetworkTokenActivationData(id: string, requestOptions?: IRequest.Options): Promise<NetworkTokenActivationDataResponse>;
    /**
    * @summary Get the PAN of a payment instrument
    * @param id {@link string } The unique identifier of the payment instrument.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link PaymentInstrumentRevealInfo }
    */
    getPanOfPaymentInstrument(id: string, requestOptions?: IRequest.Options): Promise<PaymentInstrumentRevealInfo>;
    /**
    * @summary Get a payment instrument
    * @param id {@link string } The unique identifier of the payment instrument.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link PaymentInstrument }
    */
    getPaymentInstrument(id: string, requestOptions?: IRequest.Options): Promise<PaymentInstrument>;
    /**
    * @summary List network tokens
    * @param id {@link string } The unique identifier of the payment instrument.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link ListNetworkTokensResponse }
    */
    listNetworkTokens(id: string, requestOptions?: IRequest.Options): Promise<ListNetworkTokensResponse>;
    /**
    * @summary Reveal the data of a payment instrument
    * @param paymentInstrumentRevealRequest {@link PaymentInstrumentRevealRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link PaymentInstrumentRevealResponse }
    */
    revealDataOfPaymentInstrument(paymentInstrumentRevealRequest: PaymentInstrumentRevealRequest, requestOptions?: IRequest.Options): Promise<PaymentInstrumentRevealResponse>;
    /**
    * @summary Update a payment instrument
    * @param id {@link string } The unique identifier of the payment instrument.
    * @param paymentInstrumentUpdateRequest {@link PaymentInstrumentUpdateRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link UpdatePaymentInstrument }
    */
    updatePaymentInstrument(id: string, paymentInstrumentUpdateRequest: PaymentInstrumentUpdateRequest, requestOptions?: IRequest.Options): Promise<UpdatePaymentInstrument>;
}
