import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { AddTransactionPropertyResponse } from '../model/addTransactionPropertyResponse';
import { AdjustHolding } from '../model/adjustHolding';
import { AdjustHoldingRequest } from '../model/adjustHoldingRequest';
import { CreatePortfolioDetails } from '../model/createPortfolioDetails';
import { CreateTransactionPortfolioRequest } from '../model/createTransactionPortfolioRequest';
import { DeletedEntityResponse } from '../model/deletedEntityResponse';
import { ExecutionRequest } from '../model/executionRequest';
import { HoldingsAdjustment } from '../model/holdingsAdjustment';
import { Portfolio } from '../model/portfolio';
import { PortfolioDetails } from '../model/portfolioDetails';
import { ResourceListOfHoldingsAdjustmentHeader } from '../model/resourceListOfHoldingsAdjustmentHeader';
import { TransactionQueryParameters } from '../model/transactionQueryParameters';
import { TransactionRequest } from '../model/transactionRequest';
import { UpsertPortfolioExecutionsResponse } from '../model/upsertPortfolioExecutionsResponse';
import { UpsertPortfolioTransactionsResponse } from '../model/upsertPortfolioTransactionsResponse';
import { VersionedResourceListOfHolding } from '../model/versionedResourceListOfHolding';
import { VersionedResourceListOfOutputTransaction } from '../model/versionedResourceListOfOutputTransaction';
import { VersionedResourceListOfTransaction } from '../model/versionedResourceListOfTransaction';
import { Configuration } from '../configuration';
export declare class TransactionPortfoliosService {
    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);
    /**
     * Add transaction properties
     * Upsert one or more transaction properties to a single transaction in a portfolio
     * @param scope The scope of the portfolio
     * @param code The code of the portfolio
     * @param transactionId Id of transaction
     * @param transactionProperties Transaction properties values
     * @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.
     */
    addTransactionProperty(scope: string, code: string, transactionId: string, transactionProperties?: any, observe?: 'body', reportProgress?: boolean): Observable<AddTransactionPropertyResponse>;
    addTransactionProperty(scope: string, code: string, transactionId: string, transactionProperties?: any, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AddTransactionPropertyResponse>>;
    addTransactionProperty(scope: string, code: string, transactionId: string, transactionProperties?: any, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AddTransactionPropertyResponse>>;
    /**
     * Adjust holdings
     * Adjust one or more holdings in a transaction portfolio    Prompt the creation of transactions in a specific transaction portfolio to bring selected holdings to the specified targets
     * @param scope The scope of the portfolio
     * @param code The code of the portfolio
     * @param effectiveAt The effective date of the change
     * @param holdingAdjustments The selected set of holdings adjustments
     * @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.
     */
    adjustHoldings(scope: string, code: string, effectiveAt: Date, holdingAdjustments?: Array<AdjustHoldingRequest>, observe?: 'body', reportProgress?: boolean): Observable<AdjustHolding>;
    adjustHoldings(scope: string, code: string, effectiveAt: Date, holdingAdjustments?: Array<AdjustHoldingRequest>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AdjustHolding>>;
    adjustHoldings(scope: string, code: string, effectiveAt: Date, holdingAdjustments?: Array<AdjustHoldingRequest>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AdjustHolding>>;
    /**
     * Build output transactions
     * Builds and returns the collection of all types of transactions that affect the holdings of a portfolio in to a set of output transactions
     * @param scope The scope of the portfolio
     * @param code The code of the portfolio
     * @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 instrumentPropertyKeys Optional. Keys for the instrument property values to be decorated onto the transactions
     * @param filter Optional. Expression to filter the result set
     * @param parameters Optional. Transaction query parameters
     * @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.
     */
    buildTransactions(scope: string, code: string, asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, instrumentPropertyKeys?: Array<string>, filter?: string, parameters?: TransactionQueryParameters, observe?: 'body', reportProgress?: boolean): Observable<VersionedResourceListOfOutputTransaction>;
    buildTransactions(scope: string, code: string, asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, instrumentPropertyKeys?: Array<string>, filter?: string, parameters?: TransactionQueryParameters, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<VersionedResourceListOfOutputTransaction>>;
    buildTransactions(scope: string, code: string, asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, instrumentPropertyKeys?: Array<string>, filter?: string, parameters?: TransactionQueryParameters, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<VersionedResourceListOfOutputTransaction>>;
    /**
     * Cancel holdings adjustments
     * Cancel previous adjust-holdings for the portfolio for a specific date
     * @param scope The scope of the portfolio
     * @param code The code of the portfolio
     * @param effectiveAt The effective date of the change
     * @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.
     */
    cancelAdjustHoldings(scope: string, code: string, effectiveAt: Date, observe?: 'body', reportProgress?: boolean): Observable<DeletedEntityResponse>;
    cancelAdjustHoldings(scope: string, code: string, effectiveAt: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DeletedEntityResponse>>;
    cancelAdjustHoldings(scope: string, code: string, effectiveAt: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DeletedEntityResponse>>;
    /**
     * Create transaction portfolio
     * Create a transaction portfolio in a specific scope
     * @param scope The scope into which the transaction portfolio will be created
     * @param createRequest The transaction portfolio definition
     * @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.
     */
    createPortfolio(scope: string, createRequest?: CreateTransactionPortfolioRequest, observe?: 'body', reportProgress?: boolean): Observable<Portfolio>;
    createPortfolio(scope: string, createRequest?: CreateTransactionPortfolioRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Portfolio>>;
    createPortfolio(scope: string, createRequest?: CreateTransactionPortfolioRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Portfolio>>;
    /**
     * Delete transaction property
     * Delete a property value from a single transaction in a portfolio
     * @param scope The scope of the portfolio
     * @param code Code for the portfolio
     * @param transactionId Id of the transaction to delete the property from
     * @param transactionPropertyKey The key of the property to be deleted
     * @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.
     */
    deletePropertyFromTransaction(scope: string, code: string, transactionId: string, transactionPropertyKey?: string, observe?: 'body', reportProgress?: boolean): Observable<DeletedEntityResponse>;
    deletePropertyFromTransaction(scope: string, code: string, transactionId: string, transactionPropertyKey?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DeletedEntityResponse>>;
    deletePropertyFromTransaction(scope: string, code: string, transactionId: string, transactionPropertyKey?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DeletedEntityResponse>>;
    /**
     * Delete transactions
     * Delete one or more transactions from a transaction portfolio
     * @param scope The scope of the portfolio
     * @param code The code of the portfolio
     * @param transactionIds Ids of transactions to delete
     * @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.
     */
    deleteTransactions(scope: string, code: string, transactionIds?: Array<string>, observe?: 'body', reportProgress?: boolean): Observable<DeletedEntityResponse>;
    deleteTransactions(scope: string, code: string, transactionIds?: Array<string>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DeletedEntityResponse>>;
    deleteTransactions(scope: string, code: string, transactionIds?: Array<string>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DeletedEntityResponse>>;
    /**
     * Get portfolio details
     * Get the details document associated with a transaction portfolio                When requesting details from a derived transaction portfolio, the returned set of details could come from a different transaction 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 asAt Optional. The AsAt date of the data
     * @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.
     */
    getDetails(scope: string, code: string, effectiveAt?: Date, asAt?: Date, observe?: 'body', reportProgress?: boolean): Observable<PortfolioDetails>;
    getDetails(scope: string, code: string, effectiveAt?: Date, asAt?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PortfolioDetails>>;
    getDetails(scope: string, code: string, effectiveAt?: Date, asAt?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PortfolioDetails>>;
    /**
     * Get holdings
     * Get the aggregate holdings of a transaction portfolio.  If no effectiveAt or asAt  are supplied then values will be defaulted to the latest system time.
     * @param scope The scope of the portfolio
     * @param code The code of the portfolio
     * @param byTaxlots Option to expand holdings to return the underlying tax-lots
     * @param effectiveAt Optional. The effective date of the portfolio
     * @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 filter Optional. Expression to filter the result set
     * @param instrumentPropertyKeys Optional. Keys for the instrument property values to be decorated onto the holdings
     * @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.
     */
    getHoldings(scope: string, code: string, byTaxlots?: boolean, effectiveAt?: Date, asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, filter?: string, instrumentPropertyKeys?: Array<string>, observe?: 'body', reportProgress?: boolean): Observable<VersionedResourceListOfHolding>;
    getHoldings(scope: string, code: string, byTaxlots?: boolean, effectiveAt?: Date, asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, filter?: string, instrumentPropertyKeys?: Array<string>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<VersionedResourceListOfHolding>>;
    getHoldings(scope: string, code: string, byTaxlots?: boolean, effectiveAt?: Date, asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, filter?: string, instrumentPropertyKeys?: Array<string>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<VersionedResourceListOfHolding>>;
    /**
     * Get holding adjustment
     * Get a holdings adjustment for a transaction portfolio at a specific effective time.    A holdings adjustment definition will only be returned if one exists for the specified effective time
     * @param scope The scope of the portfolio
     * @param code The code of the portfolio
     * @param effectiveAt The effective time of the holdings adjustment
     * @param asAt Optional. The AsAt date of the data
     * @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.
     */
    getHoldingsAdjustment(scope: string, code: string, effectiveAt: Date, asAt?: Date, observe?: 'body', reportProgress?: boolean): Observable<HoldingsAdjustment>;
    getHoldingsAdjustment(scope: string, code: string, effectiveAt: Date, asAt?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<HoldingsAdjustment>>;
    getHoldingsAdjustment(scope: string, code: string, effectiveAt: Date, asAt?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<HoldingsAdjustment>>;
    /**
     * Get transactions
     * Get the transactions from a transaction portfolio    When the requested portfolio is a derived transaction portfolio, the returned set of transactions is the union set of all transactions of the parent (and ancestors) and the specified portfolio.
     * @param scope The scope of the portfolio
     * @param code The code of the portfolio
     * @param fromTransactionDate Optional. Limit the returned transactions to those with a transaction date equal or later than this date
     * @param toTransactionDate Optional. Limit the returned transactions to those with a transaction date equal or before this date
     * @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 instrumentPropertyKeys Optional. Keys for the instrument property values that will be decorated onto the transactions
     * @param filter Optional. Expression to filter the result set
     * @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.
     */
    getTransactions(scope: string, code: string, fromTransactionDate?: Date, toTransactionDate?: Date, asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, instrumentPropertyKeys?: Array<string>, filter?: string, observe?: 'body', reportProgress?: boolean): Observable<VersionedResourceListOfTransaction>;
    getTransactions(scope: string, code: string, fromTransactionDate?: Date, toTransactionDate?: Date, asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, instrumentPropertyKeys?: Array<string>, filter?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<VersionedResourceListOfTransaction>>;
    getTransactions(scope: string, code: string, fromTransactionDate?: Date, toTransactionDate?: Date, asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, instrumentPropertyKeys?: Array<string>, filter?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<VersionedResourceListOfTransaction>>;
    /**
     * List holdings adjustments
     * Get holdings adjustments from a transaction portfolio in an interval of effective time.
     * @param scope The scope of the portfolio
     * @param code Code for the portfolio
     * @param fromEffectiveAt Holdings adjustments between this time (inclusive) and the toEffectiveAt are returned.
     * @param toEffectiveAt Holdings adjustments between this time (inclusive) and the fromEffectiveAt are returned.
     * @param asAt Optional. The AsAt date of the data
     * @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.
     */
    listHoldingsAdjustments(scope: string, code: string, fromEffectiveAt?: Date, toEffectiveAt?: Date, asAt?: Date, observe?: 'body', reportProgress?: boolean): Observable<ResourceListOfHoldingsAdjustmentHeader>;
    listHoldingsAdjustments(scope: string, code: string, fromEffectiveAt?: Date, toEffectiveAt?: Date, asAt?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ResourceListOfHoldingsAdjustmentHeader>>;
    listHoldingsAdjustments(scope: string, code: string, fromEffectiveAt?: Date, toEffectiveAt?: Date, asAt?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ResourceListOfHoldingsAdjustmentHeader>>;
    /**
     * Set all holdings on a transaction portfolio
     * Prompt the creation of transactions in a specific transaction portfolio to bring all holdings to the specified targets
     * @param scope The scope of the transaction portfolio
     * @param code The code of the transaction portfolio
     * @param effectiveAt The effective date of the change
     * @param holdingAdjustments The complete set of holdings adjustments for 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.
     */
    setHoldings(scope: string, code: string, effectiveAt: Date, holdingAdjustments?: Array<AdjustHoldingRequest>, observe?: 'body', reportProgress?: boolean): Observable<AdjustHolding>;
    setHoldings(scope: string, code: string, effectiveAt: Date, holdingAdjustments?: Array<AdjustHoldingRequest>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AdjustHolding>>;
    setHoldings(scope: string, code: string, effectiveAt: Date, holdingAdjustments?: Array<AdjustHoldingRequest>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AdjustHolding>>;
    /**
     * Upsert executions
     * Inserts new executions, or updates those already present
     * @param scope The scope of the portfolio
     * @param code The code of the portfolio
     * @param executions The executions to be updated
     * @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.
     */
    upsertExecutions(scope: string, code: string, executions?: Array<ExecutionRequest>, observe?: 'body', reportProgress?: boolean): Observable<UpsertPortfolioExecutionsResponse>;
    upsertExecutions(scope: string, code: string, executions?: Array<ExecutionRequest>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<UpsertPortfolioExecutionsResponse>>;
    upsertExecutions(scope: string, code: string, executions?: Array<ExecutionRequest>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<UpsertPortfolioExecutionsResponse>>;
    /**
     * Upsert details
     * Update the portfolio details for the specified transaction portfolios or add if it doesn&#39;t already exist (in the case of a derived transaction portfolio).
     * @param scope The scope of the portfolio
     * @param code The code of the portfolio
     * @param details The set of details for the portfolio
     * @param effectiveAt Optional. The effective date of the change
     * @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.
     */
    upsertPortfolioDetails(scope: string, code: string, details?: CreatePortfolioDetails, effectiveAt?: Date, observe?: 'body', reportProgress?: boolean): Observable<PortfolioDetails>;
    upsertPortfolioDetails(scope: string, code: string, details?: CreatePortfolioDetails, effectiveAt?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PortfolioDetails>>;
    upsertPortfolioDetails(scope: string, code: string, details?: CreatePortfolioDetails, effectiveAt?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PortfolioDetails>>;
    /**
     * Upsert transactions into the specified transaction portfolio
     * Upsert transactions
     * @param scope The scope of the portfolio
     * @param code The code for the portfolio
     * @param transactions The transactions to be upserted
     * @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.
     */
    upsertTransactions(scope: string, code: string, transactions?: Array<TransactionRequest>, observe?: 'body', reportProgress?: boolean): Observable<UpsertPortfolioTransactionsResponse>;
    upsertTransactions(scope: string, code: string, transactions?: Array<TransactionRequest>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<UpsertPortfolioTransactionsResponse>>;
    upsertTransactions(scope: string, code: string, transactions?: Array<TransactionRequest>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<UpsertPortfolioTransactionsResponse>>;
}
