import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { CreateReferencePortfolioRequest } from '../model/createReferencePortfolioRequest';
import { Portfolio } from '../model/portfolio';
import { ReferencePortfolioConstituentRequest } from '../model/referencePortfolioConstituentRequest';
import { ResourceListOfReferencePortfolioConstituent } from '../model/resourceListOfReferencePortfolioConstituent';
import { UpsertReferencePortfolioConstituentsResponse } from '../model/upsertReferencePortfolioConstituentsResponse';
import { Configuration } from '../configuration';
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(consumes);
    /**
     * Create reference portfolio
     * Create a new reference portfolio.
     * @param scope The intended scope of the portfolio
     * @param referencePortfolio The portfolio creation request object
     * @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, referencePortfolio?: CreateReferencePortfolioRequest, observe?: 'body', reportProgress?: boolean): Observable<Portfolio>;
    createReferencePortfolio(scope: string, referencePortfolio?: CreateReferencePortfolioRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Portfolio>>;
    createReferencePortfolio(scope: string, referencePortfolio?: CreateReferencePortfolioRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Portfolio>>;
    /**
     * Get constituents
     * Get all the constituents in the specified reference portfolio
     * @param scope The scope of the portfolio
     * @param code The scope of the portfolio
     * @param effectiveAt Optional. The effective date of the data
     * @param asAt Optional. The AsAt date of the data
     * @param sortBy Optional. Order the results by these fields. Use use the &#39;-&#39; sign to denote descending order e.g. -MyFieldName
     * @param start Optional. When paginating, skip this number of results
     * @param limit Optional. When paginating, limit the number of returned results to this many
     * @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: Date, asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, observe?: 'body', reportProgress?: boolean): Observable<ResourceListOfReferencePortfolioConstituent>;
    getReferencePortfolioConstituents(scope: string, code: string, effectiveAt: Date, asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ResourceListOfReferencePortfolioConstituent>>;
    getReferencePortfolioConstituents(scope: string, code: string, effectiveAt: Date, asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ResourceListOfReferencePortfolioConstituent>>;
    /**
     * Add constituents
     * Add constituents to the specified reference portfolio.
     * @param scope The scope of the portfolio
     * @param code The code of the portfolio
     * @param effectiveAt Optional. The effective date of the data
     * @param constituents The constituents to upload to the 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, effectiveAt: Date, constituents?: Array<ReferencePortfolioConstituentRequest>, observe?: 'body', reportProgress?: boolean): Observable<UpsertReferencePortfolioConstituentsResponse>;
    upsertReferencePortfolioConstituents(scope: string, code: string, effectiveAt: Date, constituents?: Array<ReferencePortfolioConstituentRequest>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<UpsertReferencePortfolioConstituentsResponse>>;
    upsertReferencePortfolioConstituents(scope: string, code: string, effectiveAt: Date, constituents?: Array<ReferencePortfolioConstituentRequest>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<UpsertReferencePortfolioConstituentsResponse>>;
}
