import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { BucketedCashFlowResponse } from '../model/bucketedCashFlowResponse';
import { QueryBucketedCashFlowsRequest } from '../model/queryBucketedCashFlowsRequest';
import { QueryCashFlowsRequest } from '../model/queryCashFlowsRequest';
import { QueryInstrumentEventsRequest } from '../model/queryInstrumentEventsRequest';
import { QueryTradeTicketsRequest } from '../model/queryTradeTicketsRequest';
import { ResourceListOfInstrumentCashFlow } from '../model/resourceListOfInstrumentCashFlow';
import { ResourceListOfInstrumentEventHolder } from '../model/resourceListOfInstrumentEventHolder';
import { ResourceListOfPortfolioTradeTicket } from '../model/resourceListOfPortfolioTradeTicket';
import { Configuration } from '../configuration';
import * as i0 from "@angular/core";
export declare class InstrumentEventsService {
    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] QueryBucketedCashFlows: Returns bucketed cashflows based on the holdings of the portfolios and date range specified in the query.
     * Returns bucketed cashflows based on the holdings of the portfolios and date range specified in the query.
     * @param queryBucketedCashFlowsRequest The Query Information.
     * @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.
     */
    queryBucketedCashFlows(queryBucketedCashFlowsRequest?: QueryBucketedCashFlowsRequest, observe?: 'body', reportProgress?: boolean): Observable<BucketedCashFlowResponse>;
    queryBucketedCashFlows(queryBucketedCashFlowsRequest?: QueryBucketedCashFlowsRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BucketedCashFlowResponse>>;
    queryBucketedCashFlows(queryBucketedCashFlowsRequest?: QueryBucketedCashFlowsRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BucketedCashFlowResponse>>;
    /**
     * [EXPERIMENTAL] QueryCashFlows: Returns a list of cashflows based on the holdings of the portfolios and date range specified in the query.
     * Returns a list of cashflows based on the holdings of the portfolios and date range specified in the query.
     * @param limit Optional. When paginating, limit the number of returned results to this many. If not specified, a default  of 1000 is used.
     * @param page Optional. The pagination token to use to continue listing items from a previous call. Page values are  return from list calls, and must be supplied exactly as returned. Additionally, when specifying this  value, queryBody, and limit must not  be modified.
     * @param queryCashFlowsRequest The filter parameters used to retrieve instrument events.
     * @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.
     */
    queryCashFlows(limit?: number, page?: string, queryCashFlowsRequest?: QueryCashFlowsRequest, observe?: 'body', reportProgress?: boolean): Observable<ResourceListOfInstrumentCashFlow>;
    queryCashFlows(limit?: number, page?: string, queryCashFlowsRequest?: QueryCashFlowsRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ResourceListOfInstrumentCashFlow>>;
    queryCashFlows(limit?: number, page?: string, queryCashFlowsRequest?: QueryCashFlowsRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ResourceListOfInstrumentCashFlow>>;
    /**
     * [EXPERIMENTAL] QueryInstrumentEvents: Returns a list of instrument events based on the holdings of the portfolios and date range specified in the query.
     * Returns a list of instrument events based on the holdings of the portfolios and date range specified in the query.
     * @param limit Optional. When paginating, limit the number of returned results to this many. If not specified, a default  of 1000 is used.
     * @param page Optional. The pagination token to use to continue listing items from a previous call. Page values are  return from list calls, and must be supplied exactly as returned. Additionally, when specifying this  value, queryBody, and limit must not  be modified.
     * @param queryInstrumentEventsRequest The filter parameters used to retrieve instrument events.
     * @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.
     */
    queryInstrumentEvents(limit?: number, page?: string, queryInstrumentEventsRequest?: QueryInstrumentEventsRequest, observe?: 'body', reportProgress?: boolean): Observable<ResourceListOfInstrumentEventHolder>;
    queryInstrumentEvents(limit?: number, page?: string, queryInstrumentEventsRequest?: QueryInstrumentEventsRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ResourceListOfInstrumentEventHolder>>;
    queryInstrumentEvents(limit?: number, page?: string, queryInstrumentEventsRequest?: QueryInstrumentEventsRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ResourceListOfInstrumentEventHolder>>;
    /**
     * [EXPERIMENTAL] QueryTradeTickets: Returns a list of trade tickets based on the holdings of the portfolios and date range specified in the query.
     * Returns a list of trade tickets based on the holdings of the portfolios and date range specified in the query.    These trade tickets are derived from events that involve transition of instrument states, such as transitions  on exercise or default of an instrument. The trade tickets are to allow the new position to be created given the  existing portfolio configuration.
     * @param limit Optional. When paginating, limit the number of returned results to this many. If not specified, a default  of 1000 is used.
     * @param page Optional. The pagination token to use to continue listing items from a previous call. Page values are  return from list calls, and must be supplied exactly as returned. Additionally, when specifying this  value, queryBody, and limit must not  be modified.
     * @param queryTradeTicketsRequest The filter parameters used to retrieve instrument events.
     * @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.
     */
    queryTradeTickets(limit?: number, page?: string, queryTradeTicketsRequest?: QueryTradeTicketsRequest, observe?: 'body', reportProgress?: boolean): Observable<ResourceListOfPortfolioTradeTicket>;
    queryTradeTickets(limit?: number, page?: string, queryTradeTicketsRequest?: QueryTradeTicketsRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ResourceListOfPortfolioTradeTicket>>;
    queryTradeTickets(limit?: number, page?: string, queryTradeTicketsRequest?: QueryTradeTicketsRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ResourceListOfPortfolioTradeTicket>>;
    static ɵfac: i0.ɵɵFactoryDef<InstrumentEventsService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDef<InstrumentEventsService>;
}
