import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { AborConfiguration } from '../model/aborConfiguration';
import { AborConfigurationProperties } from '../model/aborConfigurationProperties';
import { AborConfigurationRequest } from '../model/aborConfigurationRequest';
import { DeletedEntityResponse } from '../model/deletedEntityResponse';
import { PagedResourceListOfAborConfiguration } from '../model/pagedResourceListOfAborConfiguration';
import { Property } from '../model/property';
import { Configuration } from '../configuration';
import * as i0 from "@angular/core";
export declare class AborConfigurationService {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    constructor(httpClient: HttpClient, basePath: string, configuration: Configuration);
    /**
     * @param consumes string[] mime-types
     * @return true: consumes contains 'multipart/form-data', false: otherwise
     */
    private canConsumeForm;
    /**
     * [EXPERIMENTAL] CreateAborConfiguration: Create an AborConfiguration.
     * Create the given AborConfiguration.
     * @param scope The scope of the AborConfiguration.
     * @param aborConfigurationRequest The definition of the AborConfiguration.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    createAborConfiguration(scope: string, aborConfigurationRequest: AborConfigurationRequest, observe?: 'body', reportProgress?: boolean): Observable<AborConfiguration>;
    createAborConfiguration(scope: string, aborConfigurationRequest: AborConfigurationRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AborConfiguration>>;
    createAborConfiguration(scope: string, aborConfigurationRequest: AborConfigurationRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AborConfiguration>>;
    /**
     * [EXPERIMENTAL] DeleteAborConfiguration: Delete an AborConfiguration.
     * Delete the given AborConfiguration.
     * @param scope The scope of the AborConfiguration to be deleted.
     * @param code The code of the AborConfiguration to be deleted. Together with the scope this uniquely identifies the AborConfiguration.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    deleteAborConfiguration(scope: string, code: string, observe?: 'body', reportProgress?: boolean): Observable<DeletedEntityResponse>;
    deleteAborConfiguration(scope: string, code: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DeletedEntityResponse>>;
    deleteAborConfiguration(scope: string, code: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DeletedEntityResponse>>;
    /**
     * [EXPERIMENTAL] GetAborConfiguration: Get AborConfiguration.
     * Retrieve the definition of a particular AborConfiguration.
     * @param scope The scope of the AborConfiguration.
     * @param code The code of the AborConfiguration. Together with the scope this uniquely identifies the AborConfiguration.
     * @param effectiveAt The effective datetime or cut label at which to retrieve the AborConfiguration properties. Defaults to the current LUSID system datetime if not specified.
     * @param asAt The asAt datetime at which to retrieve the AborConfiguration definition. Defaults to returning the latest version of the AborConfiguration definition if not specified.
     * @param propertyKeys A list of property keys from the \&#39;AborConfiguration\&#39; domain to decorate onto the AborConfiguration.              These must take the format {domain}/{scope}/{code}, for example \&#39;AborConfiguration/Manager/Id\&#39;. If not provided will return all the entitled properties for that AborConfiguration.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getAborConfiguration(scope: string, code: string, effectiveAt?: string, asAt?: Date, propertyKeys?: Array<string>, observe?: 'body', reportProgress?: boolean): Observable<AborConfiguration>;
    getAborConfiguration(scope: string, code: string, effectiveAt?: string, asAt?: Date, propertyKeys?: Array<string>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AborConfiguration>>;
    getAborConfiguration(scope: string, code: string, effectiveAt?: string, asAt?: Date, propertyKeys?: Array<string>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AborConfiguration>>;
    /**
     * [EXPERIMENTAL] ListAborConfigurations: List AborConfiguration.
     * List all the AborConfiguration matching particular criteria.
     * @param effectiveAt The effective datetime or cut label at which to list the TimeVariant properties for the AborConfiguration. Defaults to the current LUSID              system datetime if not specified.
     * @param asAt The asAt datetime at which to list the AborConfiguration. Defaults to returning the latest version of each AAborConfigurationbor if not specified.
     * @param page The pagination token to use to continue listing AborConfiguration; this              value is returned from the previous call. If a pagination token is provided, the filter, effectiveAt              and asAt fields must not have changed since the original request. Also, if set, a start value cannot be provided.
     * @param start When paginating, skip this number of results.
     * @param limit When paginating, limit the results to this number. Defaults to 100 if not specified.
     * @param filter Expression to filter the results.              For example, to filter on the AborConfiguration type, specify \&quot;id.Code eq \&#39;AborConfiguration1\&#39;\&quot;. For more information about filtering              results, see https://support.lusid.com/knowledgebase/article/KA-01914.
     * @param propertyKeys A list of property keys from the \&#39;AborConfiguration\&#39; domain to decorate onto each AborConfiguration.              These must take the format {domain}/{scope}/{code}, for example \&#39;AborConfiguration/Manager/Id\&#39;.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    listAborConfigurations(effectiveAt?: string, asAt?: Date, page?: string, start?: number, limit?: number, filter?: string, propertyKeys?: Array<string>, observe?: 'body', reportProgress?: boolean): Observable<PagedResourceListOfAborConfiguration>;
    listAborConfigurations(effectiveAt?: string, asAt?: Date, page?: string, start?: number, limit?: number, filter?: string, propertyKeys?: Array<string>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PagedResourceListOfAborConfiguration>>;
    listAborConfigurations(effectiveAt?: string, asAt?: Date, page?: string, start?: number, limit?: number, filter?: string, propertyKeys?: Array<string>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PagedResourceListOfAborConfiguration>>;
    /**
     * [EXPERIMENTAL] UpsertAborConfigurationProperties: Upsert AborConfiguration properties
     * Update or insert one or more properties onto a single AborConfiguration. A property will be updated if it  already exists and inserted if it does not. All properties must be of the domain \&#39;AborConfiguration\&#39;.                Upserting a property that exists for an AborConfiguration, with a null value, will delete the instance of the property for that group.                Properties have an &lt;i&gt;effectiveFrom&lt;/i&gt; datetime for which the property is valid, and an &lt;i&gt;effectiveUntil&lt;/i&gt;  datetime until which the property is valid. Not supplying an &lt;i&gt;effectiveUntil&lt;/i&gt; datetime results in the property being  valid indefinitely, or until the next &lt;i&gt;effectiveFrom&lt;/i&gt; datetime of the property.
     * @param scope The scope of the AborConfiguration to update or insert the properties onto.
     * @param code The code of the AborConfiguration to update or insert the properties onto. Together with the scope this uniquely identifies the AborConfiguration.
     * @param requestBody The properties to be updated or inserted onto the chart of account. Each property in               the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \&quot;AborConfiguration/Manager/Id\&quot;.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    upsertAborConfigurationProperties(scope: string, code: string, requestBody?: {
        [key: string]: Property;
    }, observe?: 'body', reportProgress?: boolean): Observable<AborConfigurationProperties>;
    upsertAborConfigurationProperties(scope: string, code: string, requestBody?: {
        [key: string]: Property;
    }, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AborConfigurationProperties>>;
    upsertAborConfigurationProperties(scope: string, code: string, requestBody?: {
        [key: string]: Property;
    }, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AborConfigurationProperties>>;
    static ɵfac: i0.ɵɵFactoryDef<AborConfigurationService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDef<AborConfigurationService>;
}
