import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
import { Observable } from 'rxjs';
import { CustomEntityEntity } from '../model/customEntityEntity';
import { DataTypeEntity } from '../model/dataTypeEntity';
import { InstrumentEntity } from '../model/instrumentEntity';
import { PortfolioEntity } from '../model/portfolioEntity';
import { PropertyDefinitionEntity } from '../model/propertyDefinitionEntity';
import { ResourceListOfChange } from '../model/resourceListOfChange';
import { ResourceListOfChangeInterval } from '../model/resourceListOfChangeInterval';
import { Configuration } from '../configuration';
import * as i0 from "@angular/core";
export declare class EntitiesService {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    encoder: HttpParameterCodec;
    constructor(httpClient: HttpClient, basePath: string | string[], configuration: Configuration);
    private addToHttpParams;
    private addToHttpParamsRecursive;
    /**
     * [EXPERIMENTAL] GetCustomEntityByEntityUniqueId: Get a Custom Entity instance by its EntityUniqueId
     * Retrieve a particular Custom Entity instance.  If the Custom Entity is deleted, this will return the state of the Custom Entity immediately prior to deletion.
     * @param entityUniqueId The universally unique identifier of the Custom Entity.
     * @param effectiveAt The effective datetime or cut label at which to retrieve the Custom Entity. Defaults to the current LUSID system datetime if not specified.
     * @param asAt The asAt datetime at which to retrieve the Custom Entity. Defaults to returning the latest version of the Custom Entity if not specified.
     * @param previews The ids of the staged modifications to be previewed in the response.
     * @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.
     */
    getCustomEntityByEntityUniqueId(entityUniqueId: string, effectiveAt?: string, asAt?: string, previews?: Array<string>, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<CustomEntityEntity>;
    getCustomEntityByEntityUniqueId(entityUniqueId: string, effectiveAt?: string, asAt?: string, previews?: Array<string>, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CustomEntityEntity>>;
    getCustomEntityByEntityUniqueId(entityUniqueId: string, effectiveAt?: string, asAt?: string, previews?: Array<string>, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CustomEntityEntity>>;
    /**
     * [EXPERIMENTAL] GetDataTypeByEntityUniqueId: Get DataType by EntityUniqueId
     * Retrieve the definition of a particular DataType.  If the DataType is deleted, this will return the state of the DataType immediately prior to deletion.
     * @param entityUniqueId The universally unique identifier of the DataType definition.
     * @param asAt The asAt datetime at which to retrieve the DataType definition. Defaults to returning the latest version of the DataType definition if not specified.
     * @param previews The ids of the staged modifications to be previewed in the response.
     * @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.
     */
    getDataTypeByEntityUniqueId(entityUniqueId: string, asAt?: string, previews?: Array<string>, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<DataTypeEntity>;
    getDataTypeByEntityUniqueId(entityUniqueId: string, asAt?: string, previews?: Array<string>, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpResponse<DataTypeEntity>>;
    getDataTypeByEntityUniqueId(entityUniqueId: string, asAt?: string, previews?: Array<string>, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpEvent<DataTypeEntity>>;
    /**
     * [EXPERIMENTAL] GetEntityHistory: List an entity\&#39;s history information
     * Retrieve a page of an entity\&#39;s change history up to a particular point in AsAt time.
     * @param entityType The type of the entity to list the change history for.
     * @param entityUniqueId The universally unique identifier of the entity.
     * @param asAt The asAt datetime at which to list change history information. Defaults to return the change history at the latest datetime if not specified.
     * @param page The pagination token to use to continue listing change history information from a previous call to list change              history information. This value is returned from the previous call. If a pagination token is provided the filter, sortBy              and asAt fields must not have changed since the original request.
     * @param limit When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.
     * @param filter Expression to filter the result set.              Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.
     * @param sortBy A list of field names suffixed by \&quot; ASC\&quot; or \&quot; DESC\&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.
     */
    getEntityHistory(entityType: string, entityUniqueId: string, asAt?: string, page?: string, limit?: number, filter?: string, sortBy?: Array<string>, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<ResourceListOfChangeInterval>;
    getEntityHistory(entityType: string, entityUniqueId: string, asAt?: string, page?: string, limit?: number, filter?: string, sortBy?: Array<string>, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpResponse<ResourceListOfChangeInterval>>;
    getEntityHistory(entityType: string, entityUniqueId: string, asAt?: string, page?: string, limit?: number, filter?: string, sortBy?: Array<string>, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpEvent<ResourceListOfChangeInterval>>;
    /**
     * [EXPERIMENTAL] GetInstrumentByEntityUniqueId: Get instrument by EntityUniqueId
     * Retrieve the definition of a particular instrument.  If the instrument is deleted, this will return the state of the instrument immediately prior to deletion.
     * @param entityUniqueId The universally unique identifier of the instrument definition.
     * @param effectiveAt The effective datetime or cut label at which to retrieve the Instrument definition. Defaults to the current LUSID system datetime if not specified.
     * @param asAt The asAt datetime at which to retrieve the instrument definition. Defaults to returning the latest version of the instrument definition if not specified.
     * @param previews The ids of the staged modifications to be previewed in the response.
     * @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.
     */
    getInstrumentByEntityUniqueId(entityUniqueId: string, effectiveAt?: string, asAt?: string, previews?: Array<string>, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<InstrumentEntity>;
    getInstrumentByEntityUniqueId(entityUniqueId: string, effectiveAt?: string, asAt?: string, previews?: Array<string>, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpResponse<InstrumentEntity>>;
    getInstrumentByEntityUniqueId(entityUniqueId: string, effectiveAt?: string, asAt?: string, previews?: Array<string>, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpEvent<InstrumentEntity>>;
    /**
     * [EXPERIMENTAL] GetPortfolioByEntityUniqueId: Get portfolio by EntityUniqueId
     * Retrieve the definition of a particular portfolio.  If the portfolio is deleted, this will return the state of the portfolio immediately prior to deletion.
     * @param entityUniqueId The universally unique identifier of the portfolio definition.
     * @param effectiveAt The effective datetime or cut label at which to retrieve the portfolio definition. Defaults to the current LUSID system datetime if not specified.
     * @param asAt The asAt datetime at which to retrieve the portfolio definition. Defaults to returning the latest version of the portfolio definition if not specified.
     * @param previews The ids of the staged modifications to be previewed in the response.
     * @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.
     */
    getPortfolioByEntityUniqueId(entityUniqueId: string, effectiveAt?: string, asAt?: string, previews?: Array<string>, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<PortfolioEntity>;
    getPortfolioByEntityUniqueId(entityUniqueId: string, effectiveAt?: string, asAt?: string, previews?: Array<string>, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpResponse<PortfolioEntity>>;
    getPortfolioByEntityUniqueId(entityUniqueId: string, effectiveAt?: string, asAt?: string, previews?: Array<string>, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpEvent<PortfolioEntity>>;
    /**
     * GetPortfolioChanges: Get the next change to each portfolio in a scope.
     * Gets the time of the next (earliest effective at) modification (correction and/or amendment) to each portfolio in a scope relative to a point in bitemporal time.  Includes changes from parent portfolios in different scopes.  Excludes changes from subscriptions (e.g corporate actions).
     * @param scope The scope
     * @param effectiveAt The effective date of the origin.
     * @param asAt The as-at date of the origin.
     * @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.
     */
    getPortfolioChanges(scope: string, effectiveAt: string, asAt?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<ResourceListOfChange>;
    getPortfolioChanges(scope: string, effectiveAt: string, asAt?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpResponse<ResourceListOfChange>>;
    getPortfolioChanges(scope: string, effectiveAt: string, asAt?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpEvent<ResourceListOfChange>>;
    /**
     * [EXPERIMENTAL] GetPropertyDefinitionByEntityUniqueId: Get property definition by EntityUniqueId
     * Retrieve a particular property definition.  If the property definition is deleted, this will return the state of the property definition immediately prior to deletion.
     * @param entityUniqueId The universally unique identifier of the property definition.
     * @param effectiveAt The effective datetime at which to retrieve the property definition. Defaults to the current LUSID system datetime if not specified.
     * @param asAt The asAt datetime at which to retrieve the property definition. Defaults to returning the latest version of the property definition if not specified.
     * @param previews The ids of the staged modifications to be previewed in the response.
     * @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.
     */
    getPropertyDefinitionByEntityUniqueId(entityUniqueId: string, effectiveAt?: string, asAt?: string, previews?: Array<string>, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<PropertyDefinitionEntity>;
    getPropertyDefinitionByEntityUniqueId(entityUniqueId: string, effectiveAt?: string, asAt?: string, previews?: Array<string>, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpResponse<PropertyDefinitionEntity>>;
    getPropertyDefinitionByEntityUniqueId(entityUniqueId: string, effectiveAt?: string, asAt?: string, previews?: Array<string>, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json';
        context?: HttpContext;
    }): Observable<HttpEvent<PropertyDefinitionEntity>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<EntitiesService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<EntitiesService>;
}
