import Service from "../../service";
import Client from "../../client";
import { IRequest } from "../../typings/requestOptions";
import { SplitConfiguration } from "../../typings/management/models";
import { SplitConfigurationList } from "../../typings/management/models";
import { SplitConfigurationRule } from "../../typings/management/models";
import { UpdateSplitConfigurationLogicRequest } from "../../typings/management/models";
import { UpdateSplitConfigurationRequest } from "../../typings/management/models";
import { UpdateSplitConfigurationRuleRequest } from "../../typings/management/models";
/**
 * API handler for SplitConfigurationMerchantLevelApi
 */
export declare class SplitConfigurationMerchantLevelApi extends Service {
    private readonly API_BASEPATH;
    private baseUrl;
    constructor(client: Client);
    /**
    * @summary Create a rule
    * @param merchantId {@link string } The unique identifier of the merchant account.
    * @param splitConfigurationId {@link string } The unique identifier of the split configuration.
    * @param splitConfigurationRule {@link SplitConfigurationRule }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link SplitConfiguration }
    */
    createRule(merchantId: string, splitConfigurationId: string, splitConfigurationRule: SplitConfigurationRule, requestOptions?: IRequest.Options): Promise<SplitConfiguration>;
    /**
    * @summary Create a split configuration profile
    * @param merchantId {@link string } The unique identifier of the merchant account.
    * @param splitConfiguration {@link SplitConfiguration }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link SplitConfiguration }
    */
    createSplitConfiguration(merchantId: string, splitConfiguration: SplitConfiguration, requestOptions?: IRequest.Options): Promise<SplitConfiguration>;
    /**
    * @summary Delete a split configuration profile
    * @param merchantId {@link string } The unique identifier of the merchant account.
    * @param splitConfigurationId {@link string } The unique identifier of the split configuration.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link SplitConfiguration }
    */
    deleteSplitConfiguration(merchantId: string, splitConfigurationId: string, requestOptions?: IRequest.Options): Promise<SplitConfiguration>;
    /**
    * @summary Delete a rule
    * @param merchantId {@link string } The unique identifier of the merchant account.
    * @param splitConfigurationId {@link string } The unique identifier of the split configuration.
    * @param ruleId {@link string }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link SplitConfiguration }
    */
    deleteSplitConfigurationRule(merchantId: string, splitConfigurationId: string, ruleId: string, requestOptions?: IRequest.Options): Promise<SplitConfiguration>;
    /**
    * @summary Get a split configuration profile
    * @param merchantId {@link string } The unique identifier of the merchant account.
    * @param splitConfigurationId {@link string } The unique identifier of the split configuration.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link SplitConfiguration }
    */
    getSplitConfiguration(merchantId: string, splitConfigurationId: string, requestOptions?: IRequest.Options): Promise<SplitConfiguration>;
    /**
    * @summary Get a list of split configuration profiles
    * @param merchantId {@link string } The unique identifier of the merchant account.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link SplitConfigurationList }
    */
    listSplitConfigurations(merchantId: string, requestOptions?: IRequest.Options): Promise<SplitConfigurationList>;
    /**
    * @summary Update the split conditions
    * @param merchantId {@link string } The unique identifier of the merchant account.
    * @param splitConfigurationId {@link string } The identifier of the split configuration.
    * @param ruleId {@link string } The unique identifier of the split configuration rule.
    * @param updateSplitConfigurationRuleRequest {@link UpdateSplitConfigurationRuleRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link SplitConfiguration }
    */
    updateSplitConditions(merchantId: string, splitConfigurationId: string, ruleId: string, updateSplitConfigurationRuleRequest: UpdateSplitConfigurationRuleRequest, requestOptions?: IRequest.Options): Promise<SplitConfiguration>;
    /**
    * @summary Update the description of the split configuration profile
    * @param merchantId {@link string } The unique identifier of the merchant account.
    * @param splitConfigurationId {@link string } The unique identifier of the split configuration.
    * @param updateSplitConfigurationRequest {@link UpdateSplitConfigurationRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link SplitConfiguration }
    */
    updateSplitConfigurationDescription(merchantId: string, splitConfigurationId: string, updateSplitConfigurationRequest: UpdateSplitConfigurationRequest, requestOptions?: IRequest.Options): Promise<SplitConfiguration>;
    /**
    * @summary Update the split logic
    * @param merchantId {@link string } The unique identifier of the merchant account.
    * @param splitConfigurationId {@link string } The unique identifier of the split configuration.
    * @param ruleId {@link string } The unique identifier of the split configuration rule.
    * @param splitLogicId {@link string } The unique identifier of the split configuration split.
    * @param updateSplitConfigurationLogicRequest {@link UpdateSplitConfigurationLogicRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link SplitConfiguration }
    */
    updateSplitLogic(merchantId: string, splitConfigurationId: string, ruleId: string, splitLogicId: string, updateSplitConfigurationLogicRequest: UpdateSplitConfigurationLogicRequest, requestOptions?: IRequest.Options): Promise<SplitConfiguration>;
}
