/**
 * Apache Fineract
 * Apache Fineract is a secure, multi-tenanted microfinance platform  The goal of the Apache Fineract API is to empower developers to build apps on top of the Apache Fineract Platform<br>The [reference app](https://cui.fineract.dev) (username: mifos, password: password) works on the same demo tenant as the interactive links in this documentation  - The API is organized around [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) - Find out more about Apache Fineract [here](/fineract-provider/api-docs/apiLive.htm#top) - You can [Try The API From Your Browser](/fineract-provider/api-docs/apiLive.htm#interact) - The Generic Options are available [here](/fineract-provider/api-docs/apiLive.htm#genopts) - Find out more about [Updating Dates and Numbers](/fineract-provider/api-docs/apiLive.htm#dates_and_numbers) - For the Authentication and the Basic of HTTP and HTTPS refer [here](/fineract-provider/api-docs/apiLive.htm#authentication_overview) - Check about ERROR codes [here](/fineract-provider/api-docs/apiLive.htm#errors)  Please refer to the [old documentation](/fineract-provider/api-docs/apiLive.htm) for any documentation queries
 *
 * The version of the OpenAPI document: 1.5.0-66-gffae7d4-dirty
 * Contact: dev@fineract.apache.org
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { AxiosPromise, AxiosInstance } from 'axios';
import { Configuration } from '../configuration';
import { RequestArgs, BaseAPI } from '../base';
import { DeleteSavingsProductsProductIdResponse } from '../models';
import { GetSavingsProductsProductIdResponse } from '../models';
import { GetSavingsProductsResponse } from '../models';
import { GetSavingsProductsTemplateResponse } from '../models';
import { PostSavingsProductsRequest } from '../models';
import { PostSavingsProductsResponse } from '../models';
import { PutSavingsProductsProductIdRequest } from '../models';
import { PutSavingsProductsProductIdResponse } from '../models';
/**
 * SavingsProductApi - axios parameter creator
 * @export
 */
export declare const SavingsProductApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Creates a Savings Product  Mandatory Fields: name, shortName, description, currencyCode, digitsAfterDecimal,inMultiplesOf, nominalAnnualInterestRate, interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType,accountingRule  Mandatory Fields for Cash based accounting (accountingRule = 2): savingsReferenceAccountId, savingsControlAccountId, interestOnSavingsAccountId, incomeFromFeeAccountId, transfersInSuspenseAccountId, incomeFromPenaltyAccountId  Optional Fields: minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, withdrawalFeeForTransfers, paymentChannelToFundSourceMappings, feeToIncomeAccountMappings, penaltyToIncomeAccountMappings, charges, allowOverdraft, overdraftLimit, minBalanceForInterestCalculation,withHoldTax,taxGroupId
     * @summary Create a Savings Product
     * @param {PostSavingsProductsRequest} postSavingsProductsRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    create13: (postSavingsProductsRequest: PostSavingsProductsRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Deletes a Savings Product
     * @summary Delete a Savings Product
     * @param {number} productId productId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    delete19: (productId: number, options?: any) => Promise<RequestArgs>;
    /**
     * Lists Savings Products  Example Requests:  savingsproducts  savingsproducts?fields=name
     * @summary List Savings Products
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveAll34: (options?: any) => Promise<RequestArgs>;
    /**
     * Retrieves a Savings Product  Example Requests:  savingsproducts/1  savingsproducts/1?template=true  savingsproducts/1?fields=name,description
     * @summary Retrieve a Savings Product
     * @param {number} productId productId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveOne25: (productId: number, options?: any) => Promise<RequestArgs>;
    /**
     * This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:  Field Defaults Allowed description Lists Example Request:  savingsproducts/template
     * @summary Retrieve Savings Product Template
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveTemplate19: (options?: any) => Promise<RequestArgs>;
    /**
     * Updates a Savings Product
     * @summary Update a Savings Product
     * @param {number} productId productId
     * @param {PutSavingsProductsProductIdRequest} putSavingsProductsProductIdRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    update20: (productId: number, putSavingsProductsProductIdRequest: PutSavingsProductsProductIdRequest, options?: any) => Promise<RequestArgs>;
};
/**
 * SavingsProductApi - functional programming interface
 * @export
 */
export declare const SavingsProductApiFp: (configuration?: Configuration) => {
    /**
     * Creates a Savings Product  Mandatory Fields: name, shortName, description, currencyCode, digitsAfterDecimal,inMultiplesOf, nominalAnnualInterestRate, interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType,accountingRule  Mandatory Fields for Cash based accounting (accountingRule = 2): savingsReferenceAccountId, savingsControlAccountId, interestOnSavingsAccountId, incomeFromFeeAccountId, transfersInSuspenseAccountId, incomeFromPenaltyAccountId  Optional Fields: minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, withdrawalFeeForTransfers, paymentChannelToFundSourceMappings, feeToIncomeAccountMappings, penaltyToIncomeAccountMappings, charges, allowOverdraft, overdraftLimit, minBalanceForInterestCalculation,withHoldTax,taxGroupId
     * @summary Create a Savings Product
     * @param {PostSavingsProductsRequest} postSavingsProductsRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    create13(postSavingsProductsRequest: PostSavingsProductsRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PostSavingsProductsResponse>>;
    /**
     * Deletes a Savings Product
     * @summary Delete a Savings Product
     * @param {number} productId productId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    delete19(productId: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DeleteSavingsProductsProductIdResponse>>;
    /**
     * Lists Savings Products  Example Requests:  savingsproducts  savingsproducts?fields=name
     * @summary List Savings Products
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveAll34(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<GetSavingsProductsResponse>>>;
    /**
     * Retrieves a Savings Product  Example Requests:  savingsproducts/1  savingsproducts/1?template=true  savingsproducts/1?fields=name,description
     * @summary Retrieve a Savings Product
     * @param {number} productId productId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveOne25(productId: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetSavingsProductsProductIdResponse>>;
    /**
     * This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:  Field Defaults Allowed description Lists Example Request:  savingsproducts/template
     * @summary Retrieve Savings Product Template
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveTemplate19(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetSavingsProductsTemplateResponse>>;
    /**
     * Updates a Savings Product
     * @summary Update a Savings Product
     * @param {number} productId productId
     * @param {PutSavingsProductsProductIdRequest} putSavingsProductsProductIdRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    update20(productId: number, putSavingsProductsProductIdRequest: PutSavingsProductsProductIdRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PutSavingsProductsProductIdResponse>>;
};
/**
 * SavingsProductApi - factory interface
 * @export
 */
export declare const SavingsProductApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Creates a Savings Product  Mandatory Fields: name, shortName, description, currencyCode, digitsAfterDecimal,inMultiplesOf, nominalAnnualInterestRate, interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType,accountingRule  Mandatory Fields for Cash based accounting (accountingRule = 2): savingsReferenceAccountId, savingsControlAccountId, interestOnSavingsAccountId, incomeFromFeeAccountId, transfersInSuspenseAccountId, incomeFromPenaltyAccountId  Optional Fields: minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, withdrawalFeeForTransfers, paymentChannelToFundSourceMappings, feeToIncomeAccountMappings, penaltyToIncomeAccountMappings, charges, allowOverdraft, overdraftLimit, minBalanceForInterestCalculation,withHoldTax,taxGroupId
     * @summary Create a Savings Product
     * @param {PostSavingsProductsRequest} postSavingsProductsRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    create13(postSavingsProductsRequest: PostSavingsProductsRequest, options?: any): AxiosPromise<PostSavingsProductsResponse>;
    /**
     * Deletes a Savings Product
     * @summary Delete a Savings Product
     * @param {number} productId productId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    delete19(productId: number, options?: any): AxiosPromise<DeleteSavingsProductsProductIdResponse>;
    /**
     * Lists Savings Products  Example Requests:  savingsproducts  savingsproducts?fields=name
     * @summary List Savings Products
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveAll34(options?: any): AxiosPromise<Array<GetSavingsProductsResponse>>;
    /**
     * Retrieves a Savings Product  Example Requests:  savingsproducts/1  savingsproducts/1?template=true  savingsproducts/1?fields=name,description
     * @summary Retrieve a Savings Product
     * @param {number} productId productId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveOne25(productId: number, options?: any): AxiosPromise<GetSavingsProductsProductIdResponse>;
    /**
     * This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:  Field Defaults Allowed description Lists Example Request:  savingsproducts/template
     * @summary Retrieve Savings Product Template
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveTemplate19(options?: any): AxiosPromise<GetSavingsProductsTemplateResponse>;
    /**
     * Updates a Savings Product
     * @summary Update a Savings Product
     * @param {number} productId productId
     * @param {PutSavingsProductsProductIdRequest} putSavingsProductsProductIdRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    update20(productId: number, putSavingsProductsProductIdRequest: PutSavingsProductsProductIdRequest, options?: any): AxiosPromise<PutSavingsProductsProductIdResponse>;
};
/**
 * SavingsProductApi - object-oriented interface
 * @export
 * @class SavingsProductApi
 * @extends {BaseAPI}
 */
export declare class SavingsProductApi extends BaseAPI {
    /**
     * Creates a Savings Product  Mandatory Fields: name, shortName, description, currencyCode, digitsAfterDecimal,inMultiplesOf, nominalAnnualInterestRate, interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType,accountingRule  Mandatory Fields for Cash based accounting (accountingRule = 2): savingsReferenceAccountId, savingsControlAccountId, interestOnSavingsAccountId, incomeFromFeeAccountId, transfersInSuspenseAccountId, incomeFromPenaltyAccountId  Optional Fields: minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, withdrawalFeeForTransfers, paymentChannelToFundSourceMappings, feeToIncomeAccountMappings, penaltyToIncomeAccountMappings, charges, allowOverdraft, overdraftLimit, minBalanceForInterestCalculation,withHoldTax,taxGroupId
     * @summary Create a Savings Product
     * @param {PostSavingsProductsRequest} postSavingsProductsRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SavingsProductApi
     */
    create13(postSavingsProductsRequest: PostSavingsProductsRequest, options?: any): Promise<import("axios").AxiosResponse<PostSavingsProductsResponse>>;
    /**
     * Deletes a Savings Product
     * @summary Delete a Savings Product
     * @param {number} productId productId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SavingsProductApi
     */
    delete19(productId: number, options?: any): Promise<import("axios").AxiosResponse<DeleteSavingsProductsProductIdResponse>>;
    /**
     * Lists Savings Products  Example Requests:  savingsproducts  savingsproducts?fields=name
     * @summary List Savings Products
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SavingsProductApi
     */
    retrieveAll34(options?: any): Promise<import("axios").AxiosResponse<GetSavingsProductsResponse[]>>;
    /**
     * Retrieves a Savings Product  Example Requests:  savingsproducts/1  savingsproducts/1?template=true  savingsproducts/1?fields=name,description
     * @summary Retrieve a Savings Product
     * @param {number} productId productId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SavingsProductApi
     */
    retrieveOne25(productId: number, options?: any): Promise<import("axios").AxiosResponse<GetSavingsProductsProductIdResponse>>;
    /**
     * This is a convenience resource. It can be useful when building maintenance user interface screens for client applications. The template data returned consists of any or all of:  Field Defaults Allowed description Lists Example Request:  savingsproducts/template
     * @summary Retrieve Savings Product Template
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SavingsProductApi
     */
    retrieveTemplate19(options?: any): Promise<import("axios").AxiosResponse<GetSavingsProductsTemplateResponse>>;
    /**
     * Updates a Savings Product
     * @summary Update a Savings Product
     * @param {number} productId productId
     * @param {PutSavingsProductsProductIdRequest} putSavingsProductsProductIdRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof SavingsProductApi
     */
    update20(productId: number, putSavingsProductsProductIdRequest: PutSavingsProductsProductIdRequest, options?: any): Promise<import("axios").AxiosResponse<PutSavingsProductsProductIdResponse>>;
}
