import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
import { Observable } from 'rxjs';
import { BalanceReportsGenerationRequest } from '../model/balanceReportsGenerationRequest';
import { BalanceReportsGenerationRequestsList } from '../model/balanceReportsGenerationRequestsList';
import { BalanceReportsGenerationStatus } from '../model/balanceReportsGenerationStatus';
import { BalanceReportsList } from '../model/balanceReportsList';
import { BalancesReportsRequest } from '../model/balancesReportsRequest';
import { CyclicReportPeriod } from '../model/cyclicReportPeriod';
import { CyclicReportsList } from '../model/cyclicReportsList';
import { ReportFormat } from '../model/reportFormat';
import { ReportRecordsList } from '../model/reportRecordsList';
import { ReportStatus } from '../model/reportStatus';
import { ReportType } from '../model/reportType';
import { Configuration } from '../configuration';
import * as i0 from "@angular/core";
export declare class ReportsService {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    encoder: HttpParameterCodec;
    constructor(httpClient: HttpClient, basePath: string, configuration: Configuration);
    private addToHttpParams;
    private addToHttpParamsRecursive;
    /**
     * @param balancesReportsRequest
     * @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.
     */
    createBalanceReport(balancesReportsRequest: BalancesReportsRequest, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<BalanceReportsGenerationRequest>;
    createBalanceReport(balancesReportsRequest: BalancesReportsRequest, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<BalanceReportsGenerationRequest>>;
    createBalanceReport(balancesReportsRequest: BalancesReportsRequest, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<BalanceReportsGenerationRequest>>;
    /**
     * @param id
     * @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.
     */
    getBalanceReportsRequest(id: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<BalanceReportsGenerationRequest>;
    getBalanceReportsRequest(id: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<BalanceReportsGenerationRequest>>;
    getBalanceReportsRequest(id: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<BalanceReportsGenerationRequest>>;
    /**
     * @param page
     * @param size
     * @param requestId
     * @param userId
     * @param accountId
     * @param status
     * @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.
     */
    getBalanceReportsRequestTickets(page?: number, size?: number, requestId?: string, userId?: number, accountId?: number, status?: ReportStatus, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<BalanceReportsList>;
    getBalanceReportsRequestTickets(page?: number, size?: number, requestId?: string, userId?: number, accountId?: number, status?: ReportStatus, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<BalanceReportsList>>;
    getBalanceReportsRequestTickets(page?: number, size?: number, requestId?: string, userId?: number, accountId?: number, status?: ReportStatus, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<BalanceReportsList>>;
    /**
     * @param page
     * @param size
     * @param status
     * @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.
     */
    getBalanceReportsRequests(page?: number, size?: number, status?: BalanceReportsGenerationStatus, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<BalanceReportsGenerationRequestsList>;
    getBalanceReportsRequests(page?: number, size?: number, status?: BalanceReportsGenerationStatus, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<BalanceReportsGenerationRequestsList>>;
    getBalanceReportsRequests(page?: number, size?: number, status?: BalanceReportsGenerationStatus, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<BalanceReportsGenerationRequestsList>>;
    /**
     * @param page
     * @param size
     * @param userId
     * @param accountId Account Id
     * @param period
     * @param format
     * @param type
     * @param productOrInstrumentId
     * @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.
     */
    getCyclicReports(page?: number, size?: number, userId?: number, accountId?: number, period?: CyclicReportPeriod, format?: ReportFormat, type?: ReportType, productOrInstrumentId?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CyclicReportsList>;
    getCyclicReports(page?: number, size?: number, userId?: number, accountId?: number, period?: CyclicReportPeriod, format?: ReportFormat, type?: ReportType, productOrInstrumentId?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CyclicReportsList>>;
    getCyclicReports(page?: number, size?: number, userId?: number, accountId?: number, period?: CyclicReportPeriod, format?: ReportFormat, type?: ReportType, productOrInstrumentId?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CyclicReportsList>>;
    /**
     * @param page
     * @param size
     * @param userId
     * @param accountId
     * @param status
     * @param format
     * @param type
     * @param productOrInstrumentId
     * @param from
     * @param to
     * @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.
     */
    getReportsHistory(page?: number, size?: number, userId?: number, accountId?: number, status?: ReportStatus, format?: ReportFormat, type?: ReportType, productOrInstrumentId?: number, from?: string, to?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<ReportRecordsList>;
    getReportsHistory(page?: number, size?: number, userId?: number, accountId?: number, status?: ReportStatus, format?: ReportFormat, type?: ReportType, productOrInstrumentId?: number, from?: string, to?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<ReportRecordsList>>;
    getReportsHistory(page?: number, size?: number, userId?: number, accountId?: number, status?: ReportStatus, format?: ReportFormat, type?: ReportType, productOrInstrumentId?: number, from?: string, to?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<ReportRecordsList>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ReportsService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ReportsService>;
}
