import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { CorporateActionSource } from '../model/corporateActionSource';
import { CreateCorporateActionSourceRequest } from '../model/createCorporateActionSourceRequest';
import { DeletedEntityResponse } from '../model/deletedEntityResponse';
import { PagedResourceListOfCorporateActionSource } from '../model/pagedResourceListOfCorporateActionSource';
import { PagedResourceListOfInstrumentEventHolder } from '../model/pagedResourceListOfInstrumentEventHolder';
import { ResourceListOfCorporateAction } from '../model/resourceListOfCorporateAction';
import { UpsertCorporateActionRequest } from '../model/upsertCorporateActionRequest';
import { UpsertCorporateActionsResponse } from '../model/upsertCorporateActionsResponse';
import { UpsertInstrumentEventRequest } from '../model/upsertInstrumentEventRequest';
import { UpsertInstrumentEventsResponse } from '../model/upsertInstrumentEventsResponse';
import { Configuration } from '../configuration';
import * as i0 from "@angular/core";
export declare class CorporateActionSourcesService {
    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;
    /**
     * [EARLY ACCESS] BatchUpsertCorporateActions: Batch upsert corporate actions (instrument transition events) to corporate action source.
     * Create or update one or more corporate actions in a particular corporate action source. Failures are identified in the body of the response.                If a corporate action is upserted at exactly the same effective datetime as a transaction for the same instrument, the corporate action takes precedence. Depending on the nature of the corporate action, this may mean it affects the transaction.
     * @param scope The scope of corporate action source
     * @param code The code of the corporate action source
     * @param upsertCorporateActionRequest The corporate action definitions
     * @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.
     */
    batchUpsertCorporateActions(scope: string, code: string, upsertCorporateActionRequest?: Array<UpsertCorporateActionRequest>, observe?: 'body', reportProgress?: boolean): Observable<UpsertCorporateActionsResponse>;
    batchUpsertCorporateActions(scope: string, code: string, upsertCorporateActionRequest?: Array<UpsertCorporateActionRequest>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<UpsertCorporateActionsResponse>>;
    batchUpsertCorporateActions(scope: string, code: string, upsertCorporateActionRequest?: Array<UpsertCorporateActionRequest>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<UpsertCorporateActionsResponse>>;
    /**
     * [EARLY ACCESS] CreateCorporateActionSource: Create corporate action source
     * Create a corporate action source.
     * @param createCorporateActionSourceRequest The corporate action source 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.
     */
    createCorporateActionSource(createCorporateActionSourceRequest: CreateCorporateActionSourceRequest, observe?: 'body', reportProgress?: boolean): Observable<CorporateActionSource>;
    createCorporateActionSource(createCorporateActionSourceRequest: CreateCorporateActionSourceRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CorporateActionSource>>;
    createCorporateActionSource(createCorporateActionSourceRequest: CreateCorporateActionSourceRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CorporateActionSource>>;
    /**
     * [BETA] DeleteCorporateActionSource: Delete corporate actions (instrument transition events) from the corporate action source.
     * Deletes a single corporate action source
     * @param scope The scope of the corporate action source to be deleted
     * @param code The code of the corporate action source 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.
     */
    deleteCorporateActionSource(scope: string, code: string, observe?: 'body', reportProgress?: boolean): Observable<DeletedEntityResponse>;
    deleteCorporateActionSource(scope: string, code: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DeletedEntityResponse>>;
    deleteCorporateActionSource(scope: string, code: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DeletedEntityResponse>>;
    /**
     * [EARLY ACCESS] DeleteCorporateActions: Delete corporate actions
     * Delete one or more corporate actions from a particular corporate action source.
     * @param scope The scope of the corporate action source
     * @param code The code of the corporate action source
     * @param corporateActionIds The IDs of the corporate actions 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.
     */
    deleteCorporateActions(scope: string, code: string, corporateActionIds: Array<string>, observe?: 'body', reportProgress?: boolean): Observable<DeletedEntityResponse>;
    deleteCorporateActions(scope: string, code: string, corporateActionIds: Array<string>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DeletedEntityResponse>>;
    deleteCorporateActions(scope: string, code: string, corporateActionIds: Array<string>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DeletedEntityResponse>>;
    /**
     * [EARLY ACCESS] DeleteInstrumentEvents: Delete corporate actions (instrument transition events) from the corporate action source.
     * Delete one or more corporate actions from a particular corporate action source.
     * @param scope The scope of the corporate action source
     * @param code The code of the corporate action source
     * @param instrumentEventIds The IDs of the instrument events 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.
     */
    deleteInstrumentEvents(scope: string, code: string, instrumentEventIds: Array<string>, observe?: 'body', reportProgress?: boolean): Observable<DeletedEntityResponse>;
    deleteInstrumentEvents(scope: string, code: string, instrumentEventIds: Array<string>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DeletedEntityResponse>>;
    deleteInstrumentEvents(scope: string, code: string, instrumentEventIds: Array<string>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DeletedEntityResponse>>;
    /**
     * [EARLY ACCESS] GetCorporateActions: List corporate actions (instrument transition events) from the corporate action source.
     * Get corporate actions from a particular corporate action source.
     * @param scope The scope of the corporate action source.
     * @param code The code of the corporate action source.
     * @param fromEffectiveAt Optional. The start effective date of the data range.
     * @param toEffectiveAt Optional. The end effective date of the data range.
     * @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 limit Optional. When paginating, limit the results to this number.
     * @param filter Optional. Expression to filter the result set.              For example, to filter on the Announcement Date, use \&quot;announcementDate eq \&#39;2020-03-06\&#39;\&quot;              Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.
     * @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.
     */
    getCorporateActions(scope: string, code: string, fromEffectiveAt?: string, toEffectiveAt?: string, asAt?: Date, sortBy?: Array<string>, limit?: number, filter?: string, observe?: 'body', reportProgress?: boolean): Observable<ResourceListOfCorporateAction>;
    getCorporateActions(scope: string, code: string, fromEffectiveAt?: string, toEffectiveAt?: string, asAt?: Date, sortBy?: Array<string>, limit?: number, filter?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ResourceListOfCorporateAction>>;
    getCorporateActions(scope: string, code: string, fromEffectiveAt?: string, toEffectiveAt?: string, asAt?: Date, sortBy?: Array<string>, limit?: number, filter?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ResourceListOfCorporateAction>>;
    /**
     * [EARLY ACCESS] GetInstrumentEvents: Get extrinsic instrument events out of a given corporate actions source.
     * Retrieves extrinsic corporate actions out of a corporate actions source
     * @param scope The scope of the portfolio.
     * @param code The code of the portfolio.
     * @param asAt Optional. The AsAt date of the data.
     * @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, asAt, filter and limit must not  be modified.
     * @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.
     */
    getInstrumentEvents(scope: string, code: string, asAt?: Date, limit?: number, page?: string, filter?: string, observe?: 'body', reportProgress?: boolean): Observable<PagedResourceListOfInstrumentEventHolder>;
    getInstrumentEvents(scope: string, code: string, asAt?: Date, limit?: number, page?: string, filter?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PagedResourceListOfInstrumentEventHolder>>;
    getInstrumentEvents(scope: string, code: string, asAt?: Date, limit?: number, page?: string, filter?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PagedResourceListOfInstrumentEventHolder>>;
    /**
     * [EARLY ACCESS] ListCorporateActionSources: List corporate action sources
     * Gets a list of all corporate action sources
     * @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 limit Optional. When paginating, limit the number of returned results to this many. If not specified, a default  of 100 is used.
     * @param filter Optional. Expression to filter the result set. For example, to  filter on the Display Name, use \&quot;displayName eq \&#39;string\&#39;\&quot;  Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.
     * @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, the filter, asAt, and limit must not  be modified.
     * @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.
     */
    listCorporateActionSources(asAt?: Date, sortBy?: Array<string>, limit?: number, filter?: string, page?: string, observe?: 'body', reportProgress?: boolean): Observable<PagedResourceListOfCorporateActionSource>;
    listCorporateActionSources(asAt?: Date, sortBy?: Array<string>, limit?: number, filter?: string, page?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PagedResourceListOfCorporateActionSource>>;
    listCorporateActionSources(asAt?: Date, sortBy?: Array<string>, limit?: number, filter?: string, page?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PagedResourceListOfCorporateActionSource>>;
    /**
     * [EARLY ACCESS] UpsertInstrumentEvents: Upsert instrument events to the provided corporate actions source.
     * Batch upsert instrument events to corporate action sources.
     * @param scope The scope of the corporate action source.
     * @param code The code of the corporate action source.
     * @param upsertInstrumentEventRequest The instrument event definitions.
     * @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.
     */
    upsertInstrumentEvents(scope: string, code: string, upsertInstrumentEventRequest?: Array<UpsertInstrumentEventRequest>, observe?: 'body', reportProgress?: boolean): Observable<UpsertInstrumentEventsResponse>;
    upsertInstrumentEvents(scope: string, code: string, upsertInstrumentEventRequest?: Array<UpsertInstrumentEventRequest>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<UpsertInstrumentEventsResponse>>;
    upsertInstrumentEvents(scope: string, code: string, upsertInstrumentEventRequest?: Array<UpsertInstrumentEventRequest>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<UpsertInstrumentEventsResponse>>;
    static ɵfac: i0.ɵɵFactoryDef<CorporateActionSourcesService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDef<CorporateActionSourcesService>;
}
