/**
 * 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 { TableOrderColumnTypeStudio } from '../model/models';
import { TableOrderFilterListStudio } from '../model/models';
import { TableOrderListStudio } from '../model/models';
import { TableOrderMetricsFilterListStudio } from '../model/models';
import { TableOrderMetricsStudio } from '../model/models';
import { WebOrderGeopointListStudio } from '../model/models';
import { WebOrderStudio } from '../model/models';
import { Configuration } from '../configuration';
export interface CreateOrderRequestParams {
    experimentKey: string;
    webOrderStudio: WebOrderStudio;
}
export interface DeleteOrderRequestParams {
    experimentKey: string;
    essenceKey: string;
}
export interface DeleteOrdersRequestParams {
    experimentKey: string;
    requestBody: Array<string>;
}
export interface DisableOrdersRequestParams {
    experimentKey: string;
    requestBody: Array<string>;
}
export interface EnableOrdersRequestParams {
    experimentKey: string;
    requestBody: Array<string>;
}
export interface ReadOrderRequestParams {
    experimentKey: string;
    essenceKey: string;
}
export interface ReadOrdersRequestParams {
    experimentKey: string;
    offset?: number;
    limit?: number;
    sortField?: TableOrderColumnTypeStudio;
    sortCustomfield?: TableCustomfieldsColumnTypeStudio;
    sortDirection?: 'ASC' | 'DESC';
    tableOrderFilterListStudio?: TableOrderFilterListStudio;
}
export interface ReadOrdersGeopointsRequestParams {
    experimentKey: string;
    offset?: number;
    limit?: number;
    tableOrderFilterListStudio?: TableOrderFilterListStudio;
}
export interface ReadOrdersMetricsRequestParams {
    experimentKey: string;
    tableOrderMetricsFilterListStudio: TableOrderMetricsFilterListStudio;
}
export interface UpdateOrderRequestParams {
    experimentKey: string;
    webOrderStudio: WebOrderStudio;
}
export interface OrdersServiceInterface {
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    /**
     * Create order
     * New essences creation.
* @param requestParameters
     */
    createOrder(requestParameters: CreateOrderRequestParams, extraHttpRequestParams?: any): Observable<WebOrderStudio>;
    /**
     * Deleting one order
     * Removing a essence by key.
* @param requestParameters
     */
    deleteOrder(requestParameters: DeleteOrderRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Delete orders
     * Removing orders from the experiment.
* @param requestParameters
     */
    deleteOrders(requestParameters: DeleteOrdersRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Disable orders
     * Disable orders in the calculation.
* @param requestParameters
     */
    disableOrders(requestParameters: DisableOrdersRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Enable orders
     * Enable orders in the calculation.
* @param requestParameters
     */
    enableOrders(requestParameters: EnableOrdersRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Reading order
     * Getting order information by key.
* @param requestParameters
     */
    readOrder(requestParameters: ReadOrderRequestParams, extraHttpRequestParams?: any): Observable<WebOrderStudio>;
    /**
     * List orders
     * Getting a orders list.
* @param requestParameters
     */
    readOrders(requestParameters: ReadOrdersRequestParams, extraHttpRequestParams?: any): Observable<TableOrderListStudio>;
    /**
     * Order geopoints
     * Getting a geopoints.
* @param requestParameters
     */
    readOrdersGeopoints(requestParameters: ReadOrdersGeopointsRequestParams, extraHttpRequestParams?: any): Observable<WebOrderGeopointListStudio>;
    /**
     * Order metrics
     * Calculate general metrics for selected orders.
* @param requestParameters
     */
    readOrdersMetrics(requestParameters: ReadOrdersMetricsRequestParams, extraHttpRequestParams?: any): Observable<TableOrderMetricsStudio>;
    /**
     * Update order
     * Updating the essence by key.
* @param requestParameters
     */
    updateOrder(requestParameters: UpdateOrderRequestParams, extraHttpRequestParams?: any): Observable<WebOrderStudio>;
}
