import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { AnalyticStore } from '../model/analyticStore';
import { CreateAnalyticStoreRequest } from '../model/createAnalyticStoreRequest';
import { DeletedEntityResponse } from '../model/deletedEntityResponse';
import { InstrumentAnalytic } from '../model/instrumentAnalytic';
import { ResourceListOfAnalyticStoreKey } from '../model/resourceListOfAnalyticStoreKey';
import { Configuration } from '../configuration';
export declare class AnalyticsStoresService {
    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 analytic store
     * Create a new analytic store for the specified scope and date
     * @param request A populated analytic store 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.
     */
    createAnalyticStore(request?: CreateAnalyticStoreRequest, observe?: 'body', reportProgress?: boolean): Observable<AnalyticStore>;
    createAnalyticStore(request?: CreateAnalyticStoreRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AnalyticStore>>;
    createAnalyticStore(request?: CreateAnalyticStoreRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AnalyticStore>>;
    /**
     * Delete analytic store
     * Delete stored analytic data in the specified scope for the specified date
     * @param scope The analytics data scope
     * @param year The year component of the date
     * @param month The month component of the date
     * @param day The day component of the date
     * @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.
     */
    deleteAnalyticStore(scope: string, year: number, month: number, day: number, observe?: 'body', reportProgress?: boolean): Observable<DeletedEntityResponse>;
    deleteAnalyticStore(scope: string, year: number, month: number, day: number, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DeletedEntityResponse>>;
    deleteAnalyticStore(scope: string, year: number, month: number, day: number, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DeletedEntityResponse>>;
    /**
     * Get analytic store
     * Get the meta data associated with a specified scope and date combination (analytic store)
     * @param scope The analytics data scope
     * @param year The year component of the date for the data in the scope
     * @param month The month component of the date for the data in the scope
     * @param day The day component of the date for the data in the scope
     * @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.
     */
    getAnalyticStore(scope: string, year: number, month: number, day: number, asAt?: Date, observe?: 'body', reportProgress?: boolean): Observable<AnalyticStore>;
    getAnalyticStore(scope: string, year: number, month: number, day: number, asAt?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AnalyticStore>>;
    getAnalyticStore(scope: string, year: number, month: number, day: number, asAt?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AnalyticStore>>;
    /**
     * List analytic stores
     * List all defined analytic stores
     * @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 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.
     */
    listAnalyticStores(asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, filter?: string, observe?: 'body', reportProgress?: boolean): Observable<ResourceListOfAnalyticStoreKey>;
    listAnalyticStores(asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, filter?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ResourceListOfAnalyticStoreKey>>;
    listAnalyticStores(asAt?: Date, sortBy?: Array<string>, start?: number, limit?: number, filter?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ResourceListOfAnalyticStoreKey>>;
    /**
     * Set analytic data
     * Store the complete set of analytics for an existing analytic store for the specified scope and date
     * @param scope The scope of the data being stored
     * @param year The year component of the date for the data
     * @param month The month component of the date for the data
     * @param day The day component of the date for the data
     * @param data The analytic data being inserted
     * @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.
     */
    setAnalytics(scope: string, year: number, month: number, day: number, data?: Array<InstrumentAnalytic>, observe?: 'body', reportProgress?: boolean): Observable<AnalyticStore>;
    setAnalytics(scope: string, year: number, month: number, day: number, data?: Array<InstrumentAnalytic>, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AnalyticStore>>;
    setAnalytics(scope: string, year: number, month: number, day: number, data?: Array<InstrumentAnalytic>, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AnalyticStore>>;
}
