import { BaseAPI } from '../../../../common/BaseAPI';
import Configuration from '../../../../common/Configuration';
import CustomXmlElementsApi from './customXmlElements/CustomXmlElementsApi';
import AdaptationsetsApi from './adaptationsets/AdaptationsetsApi';
import BitmovinResponse from '../../../../models/BitmovinResponse';
import Period from '../../../../models/Period';
import PaginationResponse from '../../../../models/PaginationResponse';
import { PeriodListQueryParams, PeriodListQueryParamsBuilder } from './PeriodListQueryParams';
/**
 * PeriodsApi - object-oriented interface
 * @export
 * @class PeriodsApi
 * @extends {BaseAPI}
 */
export default class PeriodsApi extends BaseAPI {
    customXmlElements: CustomXmlElementsApi;
    adaptationsets: AdaptationsetsApi;
    constructor(configuration: Configuration);
    /**
     * @summary Add Period
     * @param {string} manifestId Id of the manifest
     * @param {Period} period The Period to be added to the manifest
     * @throws {BitmovinError}
     * @memberof PeriodsApi
     */
    create(manifestId: string, period?: Period): Promise<Period>;
    /**
     * @summary Delete Period
     * @param {string} manifestId Id of the manifest
     * @param {string} periodId Id of the period to be deleted
     * @throws {BitmovinError}
     * @memberof PeriodsApi
     */
    delete(manifestId: string, periodId: string): Promise<BitmovinResponse>;
    /**
     * @summary Period Details
     * @param {string} manifestId Id of the manifest
     * @param {string} periodId Id of the period
     * @throws {BitmovinError}
     * @memberof PeriodsApi
     */
    get(manifestId: string, periodId: string): Promise<Period>;
    /**
     * @summary List all Periods
     * @param {string} manifestId Id of the manifest
     * @param {*} [queryParameters] query parameters for filtering, sorting and pagination
     * @throws {BitmovinError}
     * @memberof PeriodsApi
     */
    list(manifestId: string, queryParameters?: PeriodListQueryParams | ((q: PeriodListQueryParamsBuilder) => PeriodListQueryParamsBuilder)): Promise<PaginationResponse<Period>>;
}
