/**
 * 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 { TableHardlinkColumnTypeStudio } from '../model/models';
import { TableHardlinkFilterListStudio } from '../model/models';
import { TableHardlinkListStudio } from '../model/models';
import { TableHardlinkMetricsFilterListStudio } from '../model/models';
import { TableHardlinkMetricsStudio } from '../model/models';
import { WebHardlinkStudio } from '../model/models';
import { Configuration } from '../configuration';
export interface CreateHardlinkRequestParams {
    experimentKey: string;
    webHardlinkStudio: WebHardlinkStudio;
}
export interface DeleteHardlinkRequestParams {
    experimentKey: string;
    essenceKey: string;
}
export interface DisableHardlinksRequestParams {
    experimentKey: string;
    requestBody: Array<string>;
}
export interface EnableHardlinksRequestParams {
    experimentKey: string;
    requestBody: Array<string>;
}
export interface ReadHardlinkRequestParams {
    experimentKey: string;
    essenceKey: string;
}
export interface ReadHardlinksRequestParams {
    experimentKey: string;
    offset?: number;
    limit?: number;
    sortField?: TableHardlinkColumnTypeStudio;
    sortCustomfield?: TableCustomfieldsColumnTypeStudio;
    sortDirection?: 'ASC' | 'DESC';
    tableHardlinkFilterListStudio?: TableHardlinkFilterListStudio;
}
export interface ReadHardlinksMetricsRequestParams {
    experimentKey: string;
    tableHardlinkMetricsFilterListStudio: TableHardlinkMetricsFilterListStudio;
}
export interface UpdateHardlinkRequestParams {
    experimentKey: string;
    webHardlinkStudio: WebHardlinkStudio;
}
export interface HardlinksServiceInterface {
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    /**
     * Create hardlink
     * Create new hardlink.
* @param requestParameters
     */
    createHardlink(requestParameters: CreateHardlinkRequestParams, extraHttpRequestParams?: any): Observable<WebHardlinkStudio>;
    /**
     * Remove hardlink
     * Removing a essence by key.
* @param requestParameters
     */
    deleteHardlink(requestParameters: DeleteHardlinkRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Disable hardlinks
     * Disable hardlinks in the calculation.
* @param requestParameters
     */
    disableHardlinks(requestParameters: DisableHardlinksRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Enable hardlinks
     * Enable hardlinks in the calculation.
* @param requestParameters
     */
    enableHardlinks(requestParameters: EnableHardlinksRequestParams, extraHttpRequestParams?: any): Observable<{}>;
    /**
     * Read hardlink
     * Getting hardlink information by key.
* @param requestParameters
     */
    readHardlink(requestParameters: ReadHardlinkRequestParams, extraHttpRequestParams?: any): Observable<WebHardlinkStudio>;
    /**
     * List hardlinks
     * Getting a hardlinks list.
* @param requestParameters
     */
    readHardlinks(requestParameters: ReadHardlinksRequestParams, extraHttpRequestParams?: any): Observable<TableHardlinkListStudio>;
    /**
     * Hardlink metrics
     * Calculate general metrics for selected hardlinks.
* @param requestParameters
     */
    readHardlinksMetrics(requestParameters: ReadHardlinksMetricsRequestParams, extraHttpRequestParams?: any): Observable<TableHardlinkMetricsStudio>;
    /**
     * Update hardlink
     * Updating the hardlink by key.
* @param requestParameters
     */
    updateHardlink(requestParameters: UpdateHardlinkRequestParams, extraHttpRequestParams?: any): Observable<WebHardlinkStudio>;
}
