import { BaseAPI } from '../../../../../common/BaseAPI';
import Configuration from '../../../../../common/Configuration';
import BitmovinResponse from '../../../../../models/BitmovinResponse';
import CustomXmlElement from '../../../../../models/CustomXmlElement';
import PaginationResponse from '../../../../../models/PaginationResponse';
import { CustomXmlElementListQueryParams, CustomXmlElementListQueryParamsBuilder } from './CustomXmlElementListQueryParams';
/**
 * CustomXmlElementsApi - object-oriented interface
 * @export
 * @class CustomXmlElementsApi
 * @extends {BaseAPI}
 */
export default class CustomXmlElementsApi extends BaseAPI {
    constructor(configuration: Configuration);
    /**
     * @summary Add Custom XML Element to Period
     * @param {string} manifestId Id of the manifest
     * @param {string} periodId Id of the period
     * @param {CustomXmlElement} customXmlElement Data of the custom XML element to be added to the period
     * @throws {BitmovinError}
     * @memberof CustomXmlElementsApi
     */
    create(manifestId: string, periodId: string, customXmlElement?: CustomXmlElement): Promise<CustomXmlElement>;
    /**
     * @summary Delete Custom XML Element
     * @param {string} manifestId Id of the manifest
     * @param {string} periodId Id of the period
     * @param {string} customXmlElementId Id of the Custom XML Element
     * @throws {BitmovinError}
     * @memberof CustomXmlElementsApi
     */
    delete(manifestId: string, periodId: string, customXmlElementId: string): Promise<BitmovinResponse>;
    /**
     * @summary Custom XML Element Details
     * @param {string} manifestId Id of the manifest
     * @param {string} periodId Id of the period
     * @param {string} customXmlElementId Id of the Custom XML Element
     * @throws {BitmovinError}
     * @memberof CustomXmlElementsApi
     */
    get(manifestId: string, periodId: string, customXmlElementId: string): Promise<CustomXmlElement>;
    /**
     * @summary List all Custom XML Elements of Period
     * @param {string} manifestId Id of the manifest
     * @param {string} periodId Id of the period
     * @param {*} [queryParameters] query parameters for filtering, sorting and pagination
     * @throws {BitmovinError}
     * @memberof CustomXmlElementsApi
     */
    list(manifestId: string, periodId: string, queryParameters?: CustomXmlElementListQueryParams | ((q: CustomXmlElementListQueryParamsBuilder) => CustomXmlElementListQueryParamsBuilder)): Promise<PaginationResponse<CustomXmlElement>>;
}
