/**
 * VRt.Studio [ST]
 *
 * The version of the OpenAPI document: 7.18.2755
 * Contact: servicedesk@veeroute.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator.
 * Do not edit the class manually.
 */
import { HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { TableCustomfieldsColumnTypeStudio } from '../model/models';
import { TableFactColumnTypeStudio } from '../model/models';
import { TableFactFilterListStudio } from '../model/models';
import { TableFactListStudio } from '../model/models';
import { TableFactMetricsFilterListStudio } from '../model/models';
import { TableFactMetricsStudio } from '../model/models';
import { WebFactStudio } from '../model/models';
import { Configuration } from '../configuration';
export interface CreateFactRequestParams {
    experimentKey: string;
    webFactStudio: WebFactStudio;
}
export interface DeleteFactRequestParams {
    experimentKey: string;
    essenceKey: string;
}
export interface DeleteFactsRequestParams {
    experimentKey: string;
    requestBody: Array<string>;
}
export interface DisableFactsRequestParams {
    experimentKey: string;
    requestBody: Array<string>;
}
export interface EnableFactsRequestParams {
    experimentKey: string;
    requestBody: Array<string>;
}
export interface ReadFactRequestParams {
    experimentKey: string;
    essenceKey: string;
}
export interface ReadFactsRequestParams {
    experimentKey: string;
    offset?: number;
    limit?: number;
    sortField?: TableFactColumnTypeStudio;
    sortCustomfield?: TableCustomfieldsColumnTypeStudio;
    sortDirection?: 'ASC' | 'DESC';
    tableFactFilterListStudio?: TableFactFilterListStudio;
}
export interface ReadFactsMetricsRequestParams {
    experimentKey: string;
    tableFactMetricsFilterListStudio: TableFactMetricsFilterListStudio;
}
export interface UpdateFactRequestParams {
    experimentKey: string;
    webFactStudio: WebFactStudio;
}
export interface FactsServiceInterface {
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    /**
     * Create fact
     * Create new fact.
* @param requestParameters
     */
    createFact(requestParameters: CreateFactRequestParams, extraHttpRequestParams?: any): Observable<WebFactStudio>;
    /**
     * Deleting one fact
     * Removing a fact by key.
* @param requestParameters
     */
    deleteFact(requestParameters: DeleteFactRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Delete facts
     * Removing facts from the experiment.
* @param requestParameters
     */
    deleteFacts(requestParameters: DeleteFactsRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Disable facts
     * Disable facts in the calculation.
* @param requestParameters
     */
    disableFacts(requestParameters: DisableFactsRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Enable facts
     * Enable facts in the calculation.
* @param requestParameters
     */
    enableFacts(requestParameters: EnableFactsRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Read fact
     * Getting fact information by key.
* @param requestParameters
     */
    readFact(requestParameters: ReadFactRequestParams, extraHttpRequestParams?: any): Observable<WebFactStudio>;
    /**
     * List of facts
     * Getting a facts list.
* @param requestParameters
     */
    readFacts(requestParameters: ReadFactsRequestParams, extraHttpRequestParams?: any): Observable<TableFactListStudio>;
    /**
     * Fact metrics
     * Calculate general metrics for selected facts.
* @param requestParameters
     */
    readFactsMetrics(requestParameters: ReadFactsMetricsRequestParams, extraHttpRequestParams?: any): Observable<TableFactMetricsStudio>;
    /**
     * Update fact
     * Updating the fact by key.
* @param requestParameters
     */
    updateFact(requestParameters: UpdateFactRequestParams, extraHttpRequestParams?: any): Observable<WebFactStudio>;
}
