import { BaseAPI } from '../../../../../../../common/BaseAPI';
import Configuration from '../../../../../../../common/Configuration';
import BitmovinResponse from '../../../../../../../models/BitmovinResponse';
import DashImscRepresentation from '../../../../../../../models/DashImscRepresentation';
import PaginationResponse from '../../../../../../../models/PaginationResponse';
import { DashImscRepresentationListQueryParams, DashImscRepresentationListQueryParamsBuilder } from './DashImscRepresentationListQueryParams';
/**
 * ImscApi - object-oriented interface
 * @export
 * @class ImscApi
 * @extends {BaseAPI}
 */
export default class ImscApi extends BaseAPI {
    constructor(configuration: Configuration);
    /**
     * @summary Add IMSC Representation
     * @param {string} manifestId Id of the manifest
     * @param {string} periodId Id of the period
     * @param {string} adaptationsetId Id of the subtitle adaptation set
     * @param {DashImscRepresentation} dashImscRepresentation The IMSC representation to be added to the adaptation set. Note that the adaptation set has to be a subtitle adaptation set.
     * @throws {BitmovinError}
     * @memberof ImscApi
     */
    create(manifestId: string, periodId: string, adaptationsetId: string, dashImscRepresentation?: DashImscRepresentation): Promise<DashImscRepresentation>;
    /**
     * @summary Delete IMSC Representation
     * @param {string} manifestId Id of the manifest
     * @param {string} periodId Id of the period
     * @param {string} adaptationsetId Id of the adaptation set
     * @param {string} representationId Id of the IMSC representation to be deleted
     * @throws {BitmovinError}
     * @memberof ImscApi
     */
    delete(manifestId: string, periodId: string, adaptationsetId: string, representationId: string): Promise<BitmovinResponse>;
    /**
     * @summary IMSC Representation Details
     * @param {string} manifestId Id of the manifest
     * @param {string} periodId Id of the period
     * @param {string} adaptationsetId Id of the adaptation set
     * @param {string} representationId Id of the IMSC representation
     * @throws {BitmovinError}
     * @memberof ImscApi
     */
    get(manifestId: string, periodId: string, adaptationsetId: string, representationId: string): Promise<DashImscRepresentation>;
    /**
     * @summary List all IMSC Representations
     * @param {string} manifestId Id of the manifest
     * @param {string} periodId Id of the period
     * @param {string} adaptationsetId Id of the adaptation set
     * @param {*} [queryParameters] query parameters for filtering, sorting and pagination
     * @throws {BitmovinError}
     * @memberof ImscApi
     */
    list(manifestId: string, periodId: string, adaptationsetId: string, queryParameters?: DashImscRepresentationListQueryParams | ((q: DashImscRepresentationListQueryParamsBuilder) => DashImscRepresentationListQueryParamsBuilder)): Promise<PaginationResponse<DashImscRepresentation>>;
}
