/**
 * 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 { BasicTracksTypeStudio } from '../model/models';
import { TableCustomfieldsColumnTypeStudio } from '../model/models';
import { TableTripColumnTypeStudio } from '../model/models';
import { TableTripFilterListStudio } from '../model/models';
import { TableTripListStudio } from '../model/models';
import { TableTripMetricsFilterListStudio } from '../model/models';
import { TableTripMetricsStudio } from '../model/models';
import { TableTripStopColumnTypeStudio } from '../model/models';
import { TableTripStopFilterListStudio } from '../model/models';
import { TableTripStopListStudio } from '../model/models';
import { WebTripChartListStudio } from '../model/models';
import { WebTripStudio } from '../model/models';
import { WebTripTrackListCustomStudio } from '../model/models';
import { WebTripTrackListStudio } from '../model/models';
import { Configuration } from '../configuration';
export interface CreateTripRequestParams {
    experimentKey: string;
    webTripStudio: WebTripStudio;
}
export interface DeleteCustomTracksRequestParams {
    experimentKey: string;
}
export interface DeleteTripRequestParams {
    experimentKey: string;
    essenceKey: string;
}
export interface LoadCustomTracksRequestParams {
    experimentKey: string;
    webTripTrackListCustomStudio?: WebTripTrackListCustomStudio;
}
export interface ReadTripRequestParams {
    experimentKey: string;
    essenceKey: string;
}
export interface ReadTripStopsRequestParams {
    experimentKey: string;
    essenceKey: string;
    offset?: number;
    limit?: number;
    sortField?: TableTripStopColumnTypeStudio;
    sortCustomfield?: TableCustomfieldsColumnTypeStudio;
    sortDirection?: 'ASC' | 'DESC';
    tableTripStopFilterListStudio?: TableTripStopFilterListStudio;
}
export interface ReadTripsRequestParams {
    experimentKey: string;
    offset?: number;
    limit?: number;
    sortField?: TableTripColumnTypeStudio;
    sortCustomfield?: TableCustomfieldsColumnTypeStudio;
    sortDirection?: 'ASC' | 'DESC';
    tableTripFilterListStudio?: TableTripFilterListStudio;
}
export interface ReadTripsChartsRequestParams {
    experimentKey: string;
    offset?: number;
    limit?: number;
    sortField?: TableTripColumnTypeStudio;
    sortDirection?: 'ASC' | 'DESC';
    tableTripFilterListStudio?: TableTripFilterListStudio;
}
export interface ReadTripsMetricsRequestParams {
    experimentKey: string;
    tableTripMetricsFilterListStudio: TableTripMetricsFilterListStudio;
}
export interface ReadTripsTracksRequestParams {
    experimentKey: string;
    tracksType: BasicTracksTypeStudio;
    offset?: number;
    limit?: number;
    tableTripFilterListStudio?: TableTripFilterListStudio;
}
export interface UpdateTripRequestParams {
    experimentKey: string;
    webTripStudio: WebTripStudio;
}
export interface TripsServiceInterface {
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    /**
     * Trip create
     * New essences creation.
* @param requestParameters
     */
    createTrip(requestParameters: CreateTripRequestParams, extraHttpRequestParams?: any): Observable<WebTripStudio>;
    /**
     * Remove custom tracks
     * Remove custom all tracks.
* @param requestParameters
     */
    deleteCustomTracks(requestParameters: DeleteCustomTracksRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Delete trip
     * Removing a trip by key.
* @param requestParameters
     */
    deleteTrip(requestParameters: DeleteTripRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Load custom tracks
     * Load custom tracks.
* @param requestParameters
     */
    loadCustomTracks(requestParameters: LoadCustomTracksRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Read trip
     * Getting trip information by key.
* @param requestParameters
     */
    readTrip(requestParameters: ReadTripRequestParams, extraHttpRequestParams?: any): Observable<WebTripStudio>;
    /**
     * Trip stops list
     * Getting a trip stops list.
* @param requestParameters
     */
    readTripStops(requestParameters: ReadTripStopsRequestParams, extraHttpRequestParams?: any): Observable<TableTripStopListStudio>;
    /**
     * Trip list
     * Getting a trips list.
* @param requestParameters
     */
    readTrips(requestParameters: ReadTripsRequestParams, extraHttpRequestParams?: any): Observable<TableTripListStudio>;
    /**
     * Trips chart
     * Getting a trips for chart.
* @param requestParameters
     */
    readTripsCharts(requestParameters: ReadTripsChartsRequestParams, extraHttpRequestParams?: any): Observable<WebTripChartListStudio>;
    /**
     * Trips metrics
     * Calculate general metrics for selected trips.
* @param requestParameters
     */
    readTripsMetrics(requestParameters: ReadTripsMetricsRequestParams, extraHttpRequestParams?: any): Observable<TableTripMetricsStudio>;
    /**
     * Trip tracks
     * Getting a tracks.
* @param requestParameters
     */
    readTripsTracks(requestParameters: ReadTripsTracksRequestParams, extraHttpRequestParams?: any): Observable<WebTripTrackListStudio>;
    /**
     * Trip update
     * Updating the essence by key.
* @param requestParameters
     */
    updateTrip(requestParameters: UpdateTripRequestParams, extraHttpRequestParams?: any): Observable<WebTripStudio>;
}
