/**
 * 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 { AccountingRuleData } from '../models';
import { DeleteAccountingRulesResponse } from '../models';
import { GetAccountRulesResponse } from '../models';
import { GetAccountRulesTemplateResponse } from '../models';
import { PostAccountingRulesRequest } from '../models';
import { PostAccountingRulesResponse } from '../models';
import { PutAccountingRulesRequest } from '../models';
import { PutAccountingRulesResponse } from '../models';
/**
 * AccountingRulesApi - axios parameter creator
 * @export
 */
export declare const AccountingRulesApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Define a new Accounting rule.  Mandatory Fields name, officeId, accountToDebit OR debitTags, accountToCredit OR creditTags.  Optional Fields description
     * @summary Create/Define a Accounting rule
     * @param {PostAccountingRulesRequest} [postAccountingRulesRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createAccountingRule: (postAccountingRulesRequest?: PostAccountingRulesRequest, options?: any) => Promise<RequestArgs>;
    /**
     * Deletes a Accounting rule.
     * @summary Delete a Accounting Rule
     * @param {number} accountingRuleId accountingRuleId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteAccountingRule: (accountingRuleId: number, options?: any) => Promise<RequestArgs>;
    /**
     * Returns the details of a defined Accounting rule.  Example Requests:  accountingrules/1
     * @summary Retrieve a Accounting rule
     * @param {number} accountingRuleId accountingRuleId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retreiveAccountingRule: (accountingRuleId: number, options?: any) => Promise<RequestArgs>;
    /**
     * Returns the list of defined accounting rules.  Example Requests:  accountingrules
     * @summary Retrieve Accounting Rules
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveAllAccountingRules: (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 Value Lists Example Request:  accountingrules/template
     * @summary Retrieve Accounting Rule Details Template
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveTemplate1: (options?: any) => Promise<RequestArgs>;
    /**
     * Updates the details of a Accounting rule.
     * @summary Update a Accounting Rule
     * @param {number} accountingRuleId accountingRuleId
     * @param {PutAccountingRulesRequest} [putAccountingRulesRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateAccountingRule: (accountingRuleId: number, putAccountingRulesRequest?: PutAccountingRulesRequest, options?: any) => Promise<RequestArgs>;
};
/**
 * AccountingRulesApi - functional programming interface
 * @export
 */
export declare const AccountingRulesApiFp: (configuration?: Configuration) => {
    /**
     * Define a new Accounting rule.  Mandatory Fields name, officeId, accountToDebit OR debitTags, accountToCredit OR creditTags.  Optional Fields description
     * @summary Create/Define a Accounting rule
     * @param {PostAccountingRulesRequest} [postAccountingRulesRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createAccountingRule(postAccountingRulesRequest?: PostAccountingRulesRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PostAccountingRulesResponse>>;
    /**
     * Deletes a Accounting rule.
     * @summary Delete a Accounting Rule
     * @param {number} accountingRuleId accountingRuleId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteAccountingRule(accountingRuleId: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DeleteAccountingRulesResponse>>;
    /**
     * Returns the details of a defined Accounting rule.  Example Requests:  accountingrules/1
     * @summary Retrieve a Accounting rule
     * @param {number} accountingRuleId accountingRuleId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retreiveAccountingRule(accountingRuleId: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AccountingRuleData>>;
    /**
     * Returns the list of defined accounting rules.  Example Requests:  accountingrules
     * @summary Retrieve Accounting Rules
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveAllAccountingRules(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<GetAccountRulesResponse>>>;
    /**
     * 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 Value Lists Example Request:  accountingrules/template
     * @summary Retrieve Accounting Rule Details Template
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveTemplate1(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetAccountRulesTemplateResponse>>;
    /**
     * Updates the details of a Accounting rule.
     * @summary Update a Accounting Rule
     * @param {number} accountingRuleId accountingRuleId
     * @param {PutAccountingRulesRequest} [putAccountingRulesRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateAccountingRule(accountingRuleId: number, putAccountingRulesRequest?: PutAccountingRulesRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PutAccountingRulesResponse>>;
};
/**
 * AccountingRulesApi - factory interface
 * @export
 */
export declare const AccountingRulesApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Define a new Accounting rule.  Mandatory Fields name, officeId, accountToDebit OR debitTags, accountToCredit OR creditTags.  Optional Fields description
     * @summary Create/Define a Accounting rule
     * @param {PostAccountingRulesRequest} [postAccountingRulesRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createAccountingRule(postAccountingRulesRequest?: PostAccountingRulesRequest, options?: any): AxiosPromise<PostAccountingRulesResponse>;
    /**
     * Deletes a Accounting rule.
     * @summary Delete a Accounting Rule
     * @param {number} accountingRuleId accountingRuleId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteAccountingRule(accountingRuleId: number, options?: any): AxiosPromise<DeleteAccountingRulesResponse>;
    /**
     * Returns the details of a defined Accounting rule.  Example Requests:  accountingrules/1
     * @summary Retrieve a Accounting rule
     * @param {number} accountingRuleId accountingRuleId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retreiveAccountingRule(accountingRuleId: number, options?: any): AxiosPromise<AccountingRuleData>;
    /**
     * Returns the list of defined accounting rules.  Example Requests:  accountingrules
     * @summary Retrieve Accounting Rules
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveAllAccountingRules(options?: any): AxiosPromise<Array<GetAccountRulesResponse>>;
    /**
     * 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 Value Lists Example Request:  accountingrules/template
     * @summary Retrieve Accounting Rule Details Template
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    retrieveTemplate1(options?: any): AxiosPromise<GetAccountRulesTemplateResponse>;
    /**
     * Updates the details of a Accounting rule.
     * @summary Update a Accounting Rule
     * @param {number} accountingRuleId accountingRuleId
     * @param {PutAccountingRulesRequest} [putAccountingRulesRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateAccountingRule(accountingRuleId: number, putAccountingRulesRequest?: PutAccountingRulesRequest, options?: any): AxiosPromise<PutAccountingRulesResponse>;
};
/**
 * AccountingRulesApi - object-oriented interface
 * @export
 * @class AccountingRulesApi
 * @extends {BaseAPI}
 */
export declare class AccountingRulesApi extends BaseAPI {
    /**
     * Define a new Accounting rule.  Mandatory Fields name, officeId, accountToDebit OR debitTags, accountToCredit OR creditTags.  Optional Fields description
     * @summary Create/Define a Accounting rule
     * @param {PostAccountingRulesRequest} [postAccountingRulesRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountingRulesApi
     */
    createAccountingRule(postAccountingRulesRequest?: PostAccountingRulesRequest, options?: any): Promise<import("axios").AxiosResponse<PostAccountingRulesResponse>>;
    /**
     * Deletes a Accounting rule.
     * @summary Delete a Accounting Rule
     * @param {number} accountingRuleId accountingRuleId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountingRulesApi
     */
    deleteAccountingRule(accountingRuleId: number, options?: any): Promise<import("axios").AxiosResponse<DeleteAccountingRulesResponse>>;
    /**
     * Returns the details of a defined Accounting rule.  Example Requests:  accountingrules/1
     * @summary Retrieve a Accounting rule
     * @param {number} accountingRuleId accountingRuleId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountingRulesApi
     */
    retreiveAccountingRule(accountingRuleId: number, options?: any): Promise<import("axios").AxiosResponse<AccountingRuleData>>;
    /**
     * Returns the list of defined accounting rules.  Example Requests:  accountingrules
     * @summary Retrieve Accounting Rules
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountingRulesApi
     */
    retrieveAllAccountingRules(options?: any): Promise<import("axios").AxiosResponse<GetAccountRulesResponse[]>>;
    /**
     * 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 Value Lists Example Request:  accountingrules/template
     * @summary Retrieve Accounting Rule Details Template
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountingRulesApi
     */
    retrieveTemplate1(options?: any): Promise<import("axios").AxiosResponse<GetAccountRulesTemplateResponse>>;
    /**
     * Updates the details of a Accounting rule.
     * @summary Update a Accounting Rule
     * @param {number} accountingRuleId accountingRuleId
     * @param {PutAccountingRulesRequest} [putAccountingRulesRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AccountingRulesApi
     */
    updateAccountingRule(accountingRuleId: number, putAccountingRulesRequest?: PutAccountingRulesRequest, options?: any): Promise<import("axios").AxiosResponse<PutAccountingRulesResponse>>;
}
