import { BaseAPI } from '../../../../../../../common/BaseAPI';
import Configuration from '../../../../../../../common/Configuration';
import DrmApi from './drm/DrmApi';
import ContentprotectionApi from './contentprotection/ContentprotectionApi';
import BitmovinResponse from '../../../../../../../models/BitmovinResponse';
import DashFmp4Representation from '../../../../../../../models/DashFmp4Representation';
import PaginationResponse from '../../../../../../../models/PaginationResponse';
import { DashFmp4RepresentationListQueryParams, DashFmp4RepresentationListQueryParamsBuilder } from './DashFmp4RepresentationListQueryParams';
/**
 * Fmp4Api - object-oriented interface
 * @export
 * @class Fmp4Api
 * @extends {BaseAPI}
 */
export default class Fmp4Api extends BaseAPI {
    drm: DrmApi;
    contentprotection: ContentprotectionApi;
    constructor(configuration: Configuration);
    /**
     * @summary Add fMP4 Representation
     * @param {string} manifestId Id of the manifest
     * @param {string} periodId Id of the period
     * @param {string} adaptationsetId Id of the adaptation set
     * @param {DashFmp4Representation} dashFmp4Representation The fMP4 representation to be added to the adaptation set
     * @throws {BitmovinError}
     * @memberof Fmp4Api
     */
    create(manifestId: string, periodId: string, adaptationsetId: string, dashFmp4Representation?: DashFmp4Representation): Promise<DashFmp4Representation>;
    /**
     * @summary Delete fMP4 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 fMP4 representation to be deleted
     * @throws {BitmovinError}
     * @memberof Fmp4Api
     */
    delete(manifestId: string, periodId: string, adaptationsetId: string, representationId: string): Promise<BitmovinResponse>;
    /**
     * @summary fMP4 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 representation
     * @throws {BitmovinError}
     * @memberof Fmp4Api
     */
    get(manifestId: string, periodId: string, adaptationsetId: string, representationId: string): Promise<DashFmp4Representation>;
    /**
     * @summary List all fMP4 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 Fmp4Api
     */
    list(manifestId: string, periodId: string, adaptationsetId: string, queryParameters?: DashFmp4RepresentationListQueryParams | ((q: DashFmp4RepresentationListQueryParamsBuilder) => DashFmp4RepresentationListQueryParamsBuilder)): Promise<PaginationResponse<DashFmp4Representation>>;
}
