import Service from "../../service";
import Client from "../../client";
import { IRequest } from "../../typings/requestOptions";
import { ApproveTransferLimitRequest } from "../../typings/balancePlatform/models";
import { CreateTransferLimitRequest } from "../../typings/balancePlatform/models";
import { LimitStatus } from "../../typings/balancePlatform/models";
import { Scope } from "../../typings/balancePlatform/models";
import { TransferLimit } from "../../typings/balancePlatform/models";
import { TransferLimitListResponse } from "../../typings/balancePlatform/models";
import { TransferType } from "../../typings/balancePlatform/models";
/**
 * API handler for TransferLimitsBalanceAccountLevelApi
 */
export declare class TransferLimitsBalanceAccountLevelApi extends Service {
    private readonly API_BASEPATH;
    private baseUrl;
    constructor(client: Client);
    /**
    * @summary Approve pending transfer limits
    * @param id {@link string } The unique identifier of the balance account.
    * @param approveTransferLimitRequest {@link ApproveTransferLimitRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link void }
    */
    approvePendingTransferLimits(id: string, approveTransferLimitRequest: ApproveTransferLimitRequest, requestOptions?: IRequest.Options): Promise<void>;
    /**
    * @summary Create a transfer limit
    * @param id {@link string } The unique identifier of the balance account.
    * @param createTransferLimitRequest {@link CreateTransferLimitRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link TransferLimit }
    */
    createTransferLimit(id: string, createTransferLimitRequest: CreateTransferLimitRequest, requestOptions?: IRequest.Options): Promise<TransferLimit>;
    /**
    * @summary Delete a scheduled or pending transfer limit
    * @param id {@link string } The unique identifier of the balance account.
    * @param transferLimitId {@link string } The unique identifier of the transfer limit.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link void }
    */
    deletePendingTransferLimit(id: string, transferLimitId: string, requestOptions?: IRequest.Options): Promise<void>;
    /**
    * @summary Get all current transfer limits
    * @param id {@link string } The unique identifier of the balance account.
    * @param requestOptions {@link IRequest.Options }
    * @param scope {@link Scope } The scope to which the transfer limit applies. Possible values: * **perTransaction**: you set a maximum amount for each transfer made from the balance account or balance platform. * **perDay**: you set a maximum total amount for all transfers made from the balance account or balance platform in a day.
    * @param transferType {@link TransferType } The type of transfer to which the limit applies. Possible values: * **instant**: the limit applies to transfers with an **instant** priority. * **all**: the limit applies to all transfers, regardless of priority.
    * @return {@link TransferLimitListResponse }
    */
    getCurrentTransferLimits(id: string, scope?: Scope, transferType?: TransferType, requestOptions?: IRequest.Options): Promise<TransferLimitListResponse>;
    /**
    * @summary Get the details of a transfer limit
    * @param id {@link string } The unique identifier of the balance account.
    * @param transferLimitId {@link string } The unique identifier of the transfer limit.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link TransferLimit }
    */
    getSpecificTransferLimit(id: string, transferLimitId: string, requestOptions?: IRequest.Options): Promise<TransferLimit>;
    /**
    * @summary Filter and view the transfer limits
    * @param id {@link string } The unique identifier of the balance account.
    * @param requestOptions {@link IRequest.Options }
    * @param scope {@link Scope } The scope to which the transfer limit applies. Possible values: * **perTransaction**: you set a maximum amount for each transfer made from the balance account or balance platform. * **perDay**: you set a maximum total amount for all transfers made from the balance account or balance platform in a day.
    * @param transferType {@link TransferType } The type of transfer to which the limit applies. Possible values: * **instant**: the limit applies to transfers with an **instant** priority. * **all**: the limit applies to all transfers, regardless of priority.
    * @param status {@link LimitStatus } The status of the transfer limit. Possible values:    * **active**: the limit is currently active. * **inactive**: the limit is currently inactive. * **pendingSCA**: the limit is pending until your user performs SCA. * **scheduled**: the limit is scheduled to become active at a future date.
    * @return {@link TransferLimitListResponse }
    */
    getTransferLimits(id: string, scope?: Scope, transferType?: TransferType, status?: LimitStatus, requestOptions?: IRequest.Options): Promise<TransferLimitListResponse>;
}
