import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { CreateReferencePortfolioRequest } from '../model/createReferencePortfolioRequest';
import { GetReferencePortfolioConstituentsResponse } from '../model/getReferencePortfolioConstituentsResponse';
import { Portfolio } from '../model/portfolio';
import { ResourceListOfConstituentsAdjustmentHeader } from '../model/resourceListOfConstituentsAdjustmentHeader';
import { UpsertReferencePortfolioConstituentsRequest } from '../model/upsertReferencePortfolioConstituentsRequest';
import { UpsertReferencePortfolioConstituentsResponse } from '../model/upsertReferencePortfolioConstituentsResponse';
import { Configuration } from '../configuration';
import * as i0 from "@angular/core";
export declare class ReferencePortfolioService {
    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;
    /**
     * CreateReferencePortfolio: Create reference portfolio
     * Create a reference portfolio in a particular scope.
     * @param scope The scope in which to create the reference portfolio.
     * @param createReferencePortfolioRequest The definition of the reference portfolio.
     * @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.
     */
    createReferencePortfolio(scope: string, createReferencePortfolioRequest: CreateReferencePortfolioRequest, observe?: 'body', reportProgress?: boolean): Observable<Portfolio>;
    createReferencePortfolio(scope: string, createReferencePortfolioRequest: CreateReferencePortfolioRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Portfolio>>;
    createReferencePortfolio(scope: string, createReferencePortfolioRequest: CreateReferencePortfolioRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Portfolio>>;
    /**
     * GetReferencePortfolioConstituents: Get reference portfolio constituents
     * Get constituents from a reference portfolio at a particular effective time.
     * @param scope The scope of the reference portfolio.
     * @param code The code of the reference portfolio. Together with the scope this uniquely identifies              the reference portfolio.
     * @param effectiveAt The effective date of the constituents to retrieve. Defaults to the current LUSID system datetime if not specified.
     * @param asAt The asAt datetime at which to retrieve constituents. Defaults to return the latest version              of each constituent if not specified.
     * @param propertyKeys A list of property keys from the \&#39;Instrument\&#39; or \&#39;ReferenceHolding\&#39; domain to decorate onto              constituents. These take the format {domain}/{scope}/{code} e.g. \&#39;Instrument/system/Name\&#39; or              \&#39;ReferenceHolding/strategy/quantsignal\&#39;. Defaults to return all available instrument and reference holding properties if not specified.
     * @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.
     */
    getReferencePortfolioConstituents(scope: string, code: string, effectiveAt?: string, asAt?: Date, propertyKeys?: Array<string>, observe?: 'body', reportProgress?: boolean): Observable<GetReferencePortfolioConstituentsResponse>;
    getReferencePortfolioConstituents(scope: string, code: string, effectiveAt?: string, asAt?: Date, propertyKeys?: Array<string>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<GetReferencePortfolioConstituentsResponse>>;
    getReferencePortfolioConstituents(scope: string, code: string, effectiveAt?: string, asAt?: Date, propertyKeys?: Array<string>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<GetReferencePortfolioConstituentsResponse>>;
    /**
     * ListConstituentsAdjustments: List constituents adjustments
     * List adjustments made to constituents in a reference portfolio.
     * @param scope The scope of the reference portfolio.
     * @param code The code of the reference portfolio. Together with the scope this uniquely identifies              the reference portfolio.
     * @param fromEffectiveAt Events between this time (inclusive) and the toEffectiveAt are returned.
     * @param toEffectiveAt Events between this time (inclusive) and the fromEffectiveAt are returned.
     * @param asAtTime The asAt time for which the result is valid.
     * @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.
     */
    listConstituentsAdjustments(scope: string, code: string, fromEffectiveAt: string, toEffectiveAt: string, asAtTime?: Date, observe?: 'body', reportProgress?: boolean): Observable<ResourceListOfConstituentsAdjustmentHeader>;
    listConstituentsAdjustments(scope: string, code: string, fromEffectiveAt: string, toEffectiveAt: string, asAtTime?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ResourceListOfConstituentsAdjustmentHeader>>;
    listConstituentsAdjustments(scope: string, code: string, fromEffectiveAt: string, toEffectiveAt: string, asAtTime?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ResourceListOfConstituentsAdjustmentHeader>>;
    /**
     * UpsertReferencePortfolioConstituents: Upsert reference portfolio constituents
     * Add constituents to a reference portfolio.
     * @param scope The scope of the reference portfolio.
     * @param code The code of the reference portfolio. Together with the scope this uniquely identifies              the reference portfolio.
     * @param upsertReferencePortfolioConstituentsRequest The constituents to upload to the reference portfolio.
     * @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.
     */
    upsertReferencePortfolioConstituents(scope: string, code: string, upsertReferencePortfolioConstituentsRequest: UpsertReferencePortfolioConstituentsRequest, observe?: 'body', reportProgress?: boolean): Observable<UpsertReferencePortfolioConstituentsResponse>;
    upsertReferencePortfolioConstituents(scope: string, code: string, upsertReferencePortfolioConstituentsRequest: UpsertReferencePortfolioConstituentsRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<UpsertReferencePortfolioConstituentsResponse>>;
    upsertReferencePortfolioConstituents(scope: string, code: string, upsertReferencePortfolioConstituentsRequest: UpsertReferencePortfolioConstituentsRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<UpsertReferencePortfolioConstituentsResponse>>;
    static ɵfac: i0.ɵɵFactoryDef<ReferencePortfolioService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDef<ReferencePortfolioService>;
}
