import Service from "../../service";
import Client from "../../client";
import { IRequest } from "../../typings/requestOptions";
import { BalanceAccountConfiguration } from "../../typings/balancePlatform/models";
import { BalanceAccountConfigurationRequest } from "../../typings/balancePlatform/models";
import { BalanceAccountConfigurationUpdate } from "../../typings/balancePlatform/models";
import { BalanceAccountConfigurations } from "../../typings/balancePlatform/models";
import { BalancePlatformConfiguration } from "../../typings/balancePlatform/models";
import { BalancePlatformConfigurations } from "../../typings/balancePlatform/models";
import { ExecutionResult } from "../../typings/balancePlatform/models";
import { PayoutScheduleExecutions } from "../../typings/balancePlatform/models";
/**
 * API handler for ManagedPayoutSchedulesApi
 */
export declare class ManagedPayoutSchedulesApi extends Service {
    private readonly API_BASEPATH;
    private baseUrl;
    constructor(client: Client);
    /**
    * @summary Apply a managed payout schedule to a balance account
    * @param balanceAccountId {@link string } The unique identifier of the balance account.
    * @param balanceAccountConfigurationRequest {@link BalanceAccountConfigurationRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link BalanceAccountConfiguration }
    */
    applyManagedSchedule(balanceAccountId: string, balanceAccountConfigurationRequest: BalanceAccountConfigurationRequest, requestOptions?: IRequest.Options): Promise<BalanceAccountConfiguration>;
    /**
    * @summary Delete a managed payout schedule on a balance account
    * @param balanceAccountId {@link string } The unique identifier of the balance account.
    * @param id {@link string } The unique identifier of the payout schedule applied to the balance account.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link void }
    */
    deleteBalanceAccountManagedSchedule(balanceAccountId: string, id: string, requestOptions?: IRequest.Options): Promise<void>;
    /**
    * @summary Get a specific managed payout schedule on a balance account
    * @param balanceAccountId {@link string } The unique identifier of the balance account.
    * @param id {@link string } The unique identifier of the payout schedule for the balance account.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link BalanceAccountConfiguration }
    */
    getBalanceAccountManagedScheduleById(balanceAccountId: string, id: string, requestOptions?: IRequest.Options): Promise<BalanceAccountConfiguration>;
    /**
    * @summary Get all managed payout schedules on a balance account
    * @param balanceAccountId {@link string } The unique identifier of the balance account.
    * @param requestOptions {@link IRequest.Options }
    * @param currency {@link string } The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes) of the currency used in the payout schedule.
    * @param cursor {@link string } The &#x60;cursor&#x60; returned in the links of the previous response.
    * @param limit {@link number } The number of items returned per page, maximum of 100 items. By default, the response returns 10 items per page.
    * @return {@link BalanceAccountConfigurations }
    */
    getBalanceAccountManagedSchedules(balanceAccountId: string, currency?: string, cursor?: string, limit?: number, requestOptions?: IRequest.Options): Promise<BalanceAccountConfigurations>;
    /**
    * @summary Get a specific managed payout schedule on your balance platform
    * @param balancePlatformId {@link string } The unique identifier of the balance platform.
    * @param id {@link string } The unique identifier of the payout configuration for your balance platform.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link BalancePlatformConfiguration }
    */
    getBalancePlatformManagedScheduleById(balancePlatformId: string, id: string, requestOptions?: IRequest.Options): Promise<BalancePlatformConfiguration>;
    /**
    * @summary Get all managed payout schedules on your balance platform
    * @param balancePlatformId {@link string } The unique identifier of the balance platform.
    * @param requestOptions {@link IRequest.Options }
    * @param countryCode {@link string } The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code of the country to which the payout configuration applies.
    * @param currency {@link string } The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes) of the currency used in the payout configuration.
    * @return {@link BalancePlatformConfigurations }
    */
    getBalancePlatformManagedSchedules(balancePlatformId: string, countryCode?: string, currency?: string, requestOptions?: IRequest.Options): Promise<BalancePlatformConfigurations>;
    /**
    * @summary View executions of a managed payout schedule
    * @param balanceAccountId {@link string } The unique identifier of the balance account.
    * @param id {@link string } The unique identifier of the payout schedule on the balance account.
    * @param requestOptions {@link IRequest.Options }
    * @param offset {@link number } (Required) The page number to be returned.  Default: **1**
    * @param results {@link Array&lt;ExecutionResult&gt; } Contains a list of payout statuses. If included, the response returns only executed payouts that currently have one of the specified statuses.  Possible statuses: - **succeeded**: The payout was sent successfully. - **failed**: The payout was not sent due to an error. - **skipped**: The payout was not triggered as expected.
    * @param limit {@link number } The number of items returned per page.  Default: **10**
    * @return {@link PayoutScheduleExecutions }
    */
    getPayoutScheduleExecutions(balanceAccountId: string, id: string, offset: number, results?: Array<ExecutionResult>, limit?: number, requestOptions?: IRequest.Options): Promise<PayoutScheduleExecutions>;
    /**
    * @summary Update a managed payout schedule on a balance account
    * @param balanceAccountId {@link string } The unique identifier of the balance account.
    * @param id {@link string } The unique identifier of the payout schedule applied to the balance account.
    * @param balanceAccountConfigurationUpdate {@link BalanceAccountConfigurationUpdate }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link BalanceAccountConfiguration }
    */
    updateBalanceAccountManagedSchedule(balanceAccountId: string, id: string, balanceAccountConfigurationUpdate: BalanceAccountConfigurationUpdate, requestOptions?: IRequest.Options): Promise<BalanceAccountConfiguration>;
}
