/**
 * 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 { BasicProcessStudio } from '../model/models';
import { CalculationHistoryElementStudio } from '../model/models';
import { ExperimentListStudio } from '../model/models';
import { ExperimentNeighborsStudio } from '../model/models';
import { ExperimentSettingsStudio } from '../model/models';
import { ExperimentSpecificationStudio } from '../model/models';
import { ExperimentStudio } from '../model/models';
import { FilesystemPathStudio } from '../model/models';
import { ImportSampleStudio } from '../model/models';
import { ImportSourceStudio } from '../model/models';
import { TableExperimentColumnTypeStudio } from '../model/models';
import { UniversalDataStudio } from '../model/models';
import { Configuration } from '../configuration';
export interface CreateExperimentRequestParams {
    experimentSpecificationStudio: ExperimentSpecificationStudio;
}
export interface DeleteExperimentRequestParams {
    experimentKey: string;
}
export interface DuplicateExperimentRequestParams {
    experimentKey: string;
    experimentSpecificationStudio: ExperimentSpecificationStudio;
}
export interface ExportJsonRequestParams {
    experimentKey: string;
}
export interface ExportXlsxRequestParams {
    experimentKey: string;
    timezone?: number;
}
export interface GlobalSearchRequestParams {
    filter: string;
    offset?: number;
    limit?: number;
    sortField?: TableExperimentColumnTypeStudio;
    sortDirection?: 'ASC' | 'DESC';
}
export interface ImportJsonRequestParams {
    experimentKey: string;
    universalDataStudio: UniversalDataStudio;
}
export interface ImportJsonTracedataRequestParams {
    experimentKey: string;
    source: ImportSourceStudio;
    processCode: string;
    sample: ImportSampleStudio;
}
export interface ImportJsonUrlRequestParams {
    experimentKey: string;
    url: string;
}
export interface ImportXlsxRequestParams {
    experimentKey: string;
    body: string;
}
export interface ReadExperimentRequestParams {
    experimentKey: string;
}
export interface ReadExperimentCalculationHistoryRequestParams {
    experimentKey: string;
}
export interface ReadExperimentNeighborsRequestParams {
    experimentKey: string;
    sortField?: TableExperimentColumnTypeStudio;
    sortDirection?: 'ASC' | 'DESC';
}
export interface ReadExperimentPathRequestParams {
    experimentKey: string;
}
export interface ReadFolderRequestParams {
    folderKey?: string | null;
    filter?: string;
    offset?: number;
    limit?: number;
    sortField?: TableExperimentColumnTypeStudio;
    sortDirection?: 'ASC' | 'DESC';
}
export interface RunExperimentCalculationRequestParams {
    experimentKey: string;
    processName: BasicProcessStudio;
}
export interface RunExperimentRecalculateTracksRequestParams {
    experimentKey: string;
    tracksFullSegments?: boolean;
}
export interface RunExperimentRefineRequestParams {
    experimentKey: string;
    processName: BasicProcessStudio;
    removeLocations?: boolean;
}
export interface RunExperimentValidationRequestParams {
    experimentKey: string;
    processName: BasicProcessStudio;
}
export interface StopExperimentCalculationRequestParams {
    experimentKey: string;
    processName: BasicProcessStudio;
}
export interface UpdateExperimentRequestParams {
    experimentKey: string;
    experimentSpecificationStudio: ExperimentSpecificationStudio;
}
export interface UpdateExperimentIndicatorsRequestParams {
    experimentKey: string;
    requestBody: Array<string>;
}
export interface UpdateExperimentSettingsRequestParams {
    experimentKey: string;
    experimentSettingsStudio: ExperimentSettingsStudio;
}
export interface ExperimentsServiceInterface {
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    /**
     * Create experiment
     * Create new experiment.
* @param requestParameters
     */
    createExperiment(requestParameters: CreateExperimentRequestParams, extraHttpRequestParams?: any): Observable<string>;
    /**
     * Experiment removal
     * Experiment removal by key.
* @param requestParameters
     */
    deleteExperiment(requestParameters: DeleteExperimentRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Experiment duplicate
     * Experiment duplicate.
* @param requestParameters
     */
    duplicateExperiment(requestParameters: DuplicateExperimentRequestParams, extraHttpRequestParams?: any): Observable<string>;
    /**
     * Export (JSON)
     * Export data to VRt.Universal JSON file.
* @param requestParameters
     */
    exportJson(requestParameters: ExportJsonRequestParams, extraHttpRequestParams?: any): Observable<UniversalDataStudio>;
    /**
     * Export (XLSX)
     * Export (XLSX).
* @param requestParameters
     */
    exportXlsx(requestParameters: ExportXlsxRequestParams, extraHttpRequestParams?: any): Observable<string>;
    /**
     * Experiment search
     * Experiment global search.
* @param requestParameters
     */
    globalSearch(requestParameters: GlobalSearchRequestParams, extraHttpRequestParams?: any): Observable<ExperimentListStudio>;
    /**
     * Import (JSON)
     * Importing new data from VRt.Universal JSON file. If the entity is already present (determined by its key), it is updated. If not, a new one is created.
* @param requestParameters
     */
    importJson(requestParameters: ImportJsonRequestParams, extraHttpRequestParams?: any): Observable<ExperimentStudio>;
    /**
     * Import by tracedata
     * Importing new data from a VRt.Universal JSON file by &#x60;tracedata.process_code&#x60;. If the entity is already present in the experiment (determined by its key), it is updated, if not, a new one is created.
* @param requestParameters
     */
    importJsonTracedata(requestParameters: ImportJsonTracedataRequestParams, extraHttpRequestParams?: any): Observable<ExperimentStudio>;
    /**
     * Import by URL (JSON)
     * Importing new data from a VRt.Universal JSON file by url. If the entity is already present in the experiment (determined by its key), it is updated, if not, a new one is created.
* @param requestParameters
     */
    importJsonUrl(requestParameters: ImportJsonUrlRequestParams, extraHttpRequestParams?: any): Observable<ExperimentStudio>;
    /**
     * Import (XLSX)
     * Importing new data from an XLSX file. If an entity is already present (determined by its key), it is updated. If not, a new one is created. The data time zone is taken from the XLSX file.
* @param requestParameters
     */
    importXlsx(requestParameters: ImportXlsxRequestParams, extraHttpRequestParams?: any): Observable<ExperimentStudio>;
    /**
     * Reading experiment
     * Getting experiment information by key.
* @param requestParameters
     */
    readExperiment(requestParameters: ReadExperimentRequestParams, extraHttpRequestParams?: any): Observable<ExperimentStudio>;
    /**
     * Calculation history
     * Read calculation history.
* @param requestParameters
     */
    readExperimentCalculationHistory(requestParameters: ReadExperimentCalculationHistoryRequestParams, extraHttpRequestParams?: any): Observable<Array<CalculationHistoryElementStudio>>;
    /**
     * Experiment neighbors
     * Experiment neighbors.
* @param requestParameters
     */
    readExperimentNeighbors(requestParameters: ReadExperimentNeighborsRequestParams, extraHttpRequestParams?: any): Observable<ExperimentNeighborsStudio>;
    /**
     * Experiment path
     * Experiment path.
* @param requestParameters
     */
    readExperimentPath(requestParameters: ReadExperimentPathRequestParams, extraHttpRequestParams?: any): Observable<FilesystemPathStudio>;
    /**
     * Experiment list
     * Getting a experiments list.
* @param requestParameters
     */
    readFolder(requestParameters: ReadFolderRequestParams, extraHttpRequestParams?: any): Observable<ExperimentListStudio>;
    /**
     * Run calculation
     * Experiment calculation run.
* @param requestParameters
     */
    runExperimentCalculation(requestParameters: RunExperimentCalculationRequestParams, extraHttpRequestParams?: any): Observable<ExperimentStudio>;
    /**
     * Run recalculate tracks
     * Starting recalculation of &#x60;ROAD&#x60; experiment tracks.
* @param requestParameters
     */
    runExperimentRecalculateTracks(requestParameters: RunExperimentRecalculateTracksRequestParams, extraHttpRequestParams?: any): Observable<ExperimentStudio>;
    /**
     * Run refine
     * Experiment refine run.
* @param requestParameters
     */
    runExperimentRefine(requestParameters: RunExperimentRefineRequestParams, extraHttpRequestParams?: any): Observable<ExperimentStudio>;
    /**
     * Run validation
     * Experiment validation run.
* @param requestParameters
     */
    runExperimentValidation(requestParameters: RunExperimentValidationRequestParams, extraHttpRequestParams?: any): Observable<ExperimentStudio>;
    /**
     * Calculation stop
     * Calculation stop.
* @param requestParameters
     */
    stopExperimentCalculation(requestParameters: StopExperimentCalculationRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Experiment update
     * Rename \\ move experiment.
* @param requestParameters
     */
    updateExperiment(requestParameters: UpdateExperimentRequestParams, extraHttpRequestParams?: any): Observable<ExperimentStudio>;
    /**
     * Indicators update
     * Updating the experiment indicators.
* @param requestParameters
     */
    updateExperimentIndicators(requestParameters: UpdateExperimentIndicatorsRequestParams, extraHttpRequestParams?: any): Observable<ExperimentStudio>;
    /**
     * Settings update
     * Experiment settings update.
* @param requestParameters
     */
    updateExperimentSettings(requestParameters: UpdateExperimentSettingsRequestParams, extraHttpRequestParams?: any): Observable<ExperimentStudio>;
}
