/**
 * 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 { TableLocationColumnTypeStudio } from '../model/models';
import { TableLocationFilterListStudio } from '../model/models';
import { TableLocationListStudio } from '../model/models';
import { TableLocationMetricsFilterListStudio } from '../model/models';
import { TableLocationMetricsStudio } from '../model/models';
import { WebLocationGeopointListStudio } from '../model/models';
import { WebLocationStudio } from '../model/models';
import { Configuration } from '../configuration';
export interface CreateLocationRequestParams {
    experimentKey: string;
    webLocationStudio: WebLocationStudio;
}
export interface DeleteLocationRequestParams {
    experimentKey: string;
    essenceKey: string;
}
export interface ReadLocationRequestParams {
    experimentKey: string;
    essenceKey: string;
}
export interface ReadLocationsRequestParams {
    experimentKey: string;
    offset?: number;
    limit?: number;
    sortField?: TableLocationColumnTypeStudio;
    sortCustomfield?: TableCustomfieldsColumnTypeStudio;
    sortDirection?: 'ASC' | 'DESC';
    tableLocationFilterListStudio?: TableLocationFilterListStudio;
}
export interface ReadLocationsGeopointsRequestParams {
    experimentKey: string;
    offset?: number;
    limit?: number;
    tableLocationFilterListStudio?: TableLocationFilterListStudio;
}
export interface ReadLocationsMetricsRequestParams {
    experimentKey: string;
    tableLocationMetricsFilterListStudio: TableLocationMetricsFilterListStudio;
}
export interface UpdateLocationRequestParams {
    experimentKey: string;
    webLocationStudio: WebLocationStudio;
}
export interface LocationsServiceInterface {
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    /**
     * Create location
     * Create location.
* @param requestParameters
     */
    createLocation(requestParameters: CreateLocationRequestParams, extraHttpRequestParams?: any): Observable<WebLocationStudio>;
    /**
     * Remove location
     * Removing a location by key.
* @param requestParameters
     */
    deleteLocation(requestParameters: DeleteLocationRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Read location
     * Getting location information by key.
* @param requestParameters
     */
    readLocation(requestParameters: ReadLocationRequestParams, extraHttpRequestParams?: any): Observable<WebLocationStudio>;
    /**
     * Locations list
     * Getting a locations list.
* @param requestParameters
     */
    readLocations(requestParameters: ReadLocationsRequestParams, extraHttpRequestParams?: any): Observable<TableLocationListStudio>;
    /**
     * Location geopoints
     * Getting a geopoints.
* @param requestParameters
     */
    readLocationsGeopoints(requestParameters: ReadLocationsGeopointsRequestParams, extraHttpRequestParams?: any): Observable<WebLocationGeopointListStudio>;
    /**
     * Location metrics
     * Calculate general metrics for selected locations.
* @param requestParameters
     */
    readLocationsMetrics(requestParameters: ReadLocationsMetricsRequestParams, extraHttpRequestParams?: any): Observable<TableLocationMetricsStudio>;
    /**
     * Update location
     * Updating the location by key.
* @param requestParameters
     */
    updateLocation(requestParameters: UpdateLocationRequestParams, extraHttpRequestParams?: any): Observable<WebLocationStudio>;
}
