import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { Abor } from '../model/abor';
import { AborProperties } from '../model/aborProperties';
import { AborRequest } from '../model/aborRequest';
import { DeletedEntityResponse } from '../model/deletedEntityResponse';
import { JELinesQueryParameters } from '../model/jELinesQueryParameters';
import { PagedResourceListOfAbor } from '../model/pagedResourceListOfAbor';
import { Property } from '../model/property';
import { VersionedResourceListOfJELines } from '../model/versionedResourceListOfJELines';
import { Configuration } from '../configuration';
import * as i0 from "@angular/core";
export declare class AborService {
    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] CreateAbor: Create an Abor.
     * Create the given Abor.
     * @param scope The scope of the Abor.
     * @param aborRequest The definition of the Abor.
     * @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.
     */
    createAbor(scope: string, aborRequest: AborRequest, observe?: 'body', reportProgress?: boolean): Observable<Abor>;
    createAbor(scope: string, aborRequest: AborRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Abor>>;
    createAbor(scope: string, aborRequest: AborRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Abor>>;
    /**
     * [EXPERIMENTAL] DeleteAbor: Delete an Abor.
     * Delete the given Abor.
     * @param scope The scope of the Abor to be deleted.
     * @param code The code of the Abor to be deleted. Together with the scope this uniquely identifies the Abor.
     * @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.
     */
    deleteAbor(scope: string, code: string, observe?: 'body', reportProgress?: boolean): Observable<DeletedEntityResponse>;
    deleteAbor(scope: string, code: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DeletedEntityResponse>>;
    deleteAbor(scope: string, code: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DeletedEntityResponse>>;
    /**
     * [EXPERIMENTAL] GetAbor: Get Abor.
     * Retrieve the definition of a particular Abor.
     * @param scope The scope of the Abor.
     * @param code The code of the Abor. Together with the scope this uniquely identifies the Abor.
     * @param effectiveAt The effective datetime or cut label at which to retrieve the Abor properties. Defaults to the current LUSID system datetime if not specified.
     * @param asAt The asAt datetime at which to retrieve the Abor definition. Defaults to returning the latest version of the Abor definition if not specified.
     * @param propertyKeys A list of property keys from the \&#39;Abor\&#39; domain to decorate onto the Abor.              These must take the format {domain}/{scope}/{code}, for example \&#39;Abor/Manager/Id\&#39;. If not provided will return all the entitled properties for that Abor.
     * @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.
     */
    getAbor(scope: string, code: string, effectiveAt?: string, asAt?: Date, propertyKeys?: Array<string>, observe?: 'body', reportProgress?: boolean): Observable<Abor>;
    getAbor(scope: string, code: string, effectiveAt?: string, asAt?: Date, propertyKeys?: Array<string>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Abor>>;
    getAbor(scope: string, code: string, effectiveAt?: string, asAt?: Date, propertyKeys?: Array<string>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Abor>>;
    /**
     * [EXPERIMENTAL] GetJELines: Get the JELines for the given Abor.
     * Gets the JELines for the given Abor                The JE Lines have been generated from transactions and translated via posting rules
     * @param scope The scope of the Abor.
     * @param code The code of the Abor. Together with the scope is creating the unique identifier for the given Abor.
     * @param jELinesQueryParameters The query parameters used in running the generation of the JELines.
     * @param asAt The asAt datetime at which to retrieve JELines. Defaults to returning the latest version               of each transaction if not specified.
     * @param limit When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.
     * @param page The pagination token to use to continue listing JELines from a previous call to GetJELines.
     * @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.
     */
    getJELines(scope: string, code: string, jELinesQueryParameters: JELinesQueryParameters, asAt?: Date, limit?: number, page?: string, observe?: 'body', reportProgress?: boolean): Observable<VersionedResourceListOfJELines>;
    getJELines(scope: string, code: string, jELinesQueryParameters: JELinesQueryParameters, asAt?: Date, limit?: number, page?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<VersionedResourceListOfJELines>>;
    getJELines(scope: string, code: string, jELinesQueryParameters: JELinesQueryParameters, asAt?: Date, limit?: number, page?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<VersionedResourceListOfJELines>>;
    /**
     * [EXPERIMENTAL] ListAbors: List Abors.
     * List all the Abors matching particular criteria.
     * @param effectiveAt The effective datetime or cut label at which to list the TimeVariant properties for the Abor. Defaults to the current LUSID              system datetime if not specified.
     * @param asAt The asAt datetime at which to list the Abor. Defaults to returning the latest version of each Abor if not specified.
     * @param page The pagination token to use to continue listing Abor; 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 Abor type, specify \&quot;id.Code eq \&#39;Abor1\&#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;Abor\&#39; domain to decorate onto each Abor.              These must take the format {domain}/{scope}/{code}, for example \&#39;Abor/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.
     */
    listAbors(effectiveAt?: string, asAt?: Date, page?: string, start?: number, limit?: number, filter?: string, propertyKeys?: Array<string>, observe?: 'body', reportProgress?: boolean): Observable<PagedResourceListOfAbor>;
    listAbors(effectiveAt?: string, asAt?: Date, page?: string, start?: number, limit?: number, filter?: string, propertyKeys?: Array<string>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PagedResourceListOfAbor>>;
    listAbors(effectiveAt?: string, asAt?: Date, page?: string, start?: number, limit?: number, filter?: string, propertyKeys?: Array<string>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PagedResourceListOfAbor>>;
    /**
     * [EXPERIMENTAL] UpsertAborProperties: Upsert Abor properties
     * Update or insert one or more properties onto a single Abor. A property will be updated if it  already exists and inserted if it does not. All properties must be of the domain \&#39;Abor\&#39;.                Upserting a property that exists for an Abor, 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 Abor to update or insert the properties onto.
     * @param code The code of the Abor to update or insert the properties onto. Together with the scope this uniquely identifies the Abor.
     * @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;Abor/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.
     */
    upsertAborProperties(scope: string, code: string, requestBody?: {
        [key: string]: Property;
    }, observe?: 'body', reportProgress?: boolean): Observable<AborProperties>;
    upsertAborProperties(scope: string, code: string, requestBody?: {
        [key: string]: Property;
    }, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AborProperties>>;
    upsertAborProperties(scope: string, code: string, requestBody?: {
        [key: string]: Property;
    }, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AborProperties>>;
    static ɵfac: i0.ɵɵFactoryDef<AborService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDef<AborService>;
}
