import { BaseAPI } from '../../../common/BaseAPI';
import Configuration from '../../../common/Configuration';
import SchedulesApi from './schedules/SchedulesApi';
import BitmovinResponse from '../../../models/BitmovinResponse';
import PrewarmedEncoderPool from '../../../models/PrewarmedEncoderPool';
import PaginationResponse from '../../../models/PaginationResponse';
import { PrewarmedEncoderPoolListQueryParams, PrewarmedEncoderPoolListQueryParamsBuilder } from './PrewarmedEncoderPoolListQueryParams';
/**
 * PrewarmedEncoderPoolsApi - object-oriented interface
 * @export
 * @class PrewarmedEncoderPoolsApi
 * @extends {BaseAPI}
 */
export default class PrewarmedEncoderPoolsApi extends BaseAPI {
    schedules: SchedulesApi;
    constructor(configuration: Configuration);
    /**
     * @summary Create prewarmed encoder pool
     * @param {PrewarmedEncoderPool} prewarmedEncoderPool The prewarmed encoder pool to be created
     * @throws {BitmovinError}
     * @memberof PrewarmedEncoderPoolsApi
     */
    create(prewarmedEncoderPool?: PrewarmedEncoderPool): Promise<PrewarmedEncoderPool>;
    /**
     * @summary Delete prewarmed encoder pool
     * @param {string} poolId Id of the prewarmed encoder pool
     * @throws {BitmovinError}
     * @memberof PrewarmedEncoderPoolsApi
     */
    delete(poolId: string): Promise<BitmovinResponse>;
    /**
     * @summary Prewarmed encoder pool details
     * @param {string} poolId Id of the prewarmed encoder pool
     * @throws {BitmovinError}
     * @memberof PrewarmedEncoderPoolsApi
     */
    get(poolId: string): Promise<PrewarmedEncoderPool>;
    /**
     * @summary List prewarmed encoder pools
     * @param {*} [queryParameters] query parameters for filtering, sorting and pagination
     * @throws {BitmovinError}
     * @memberof PrewarmedEncoderPoolsApi
     */
    list(queryParameters?: PrewarmedEncoderPoolListQueryParams | ((q: PrewarmedEncoderPoolListQueryParamsBuilder) => PrewarmedEncoderPoolListQueryParamsBuilder)): Promise<PaginationResponse<PrewarmedEncoderPool>>;
    /**
     * @summary Start prewarmed encoder pool
     * @param {string} poolId Id of the prewarmed encoder pool to be started
     * @throws {BitmovinError}
     * @memberof PrewarmedEncoderPoolsApi
     */
    start(poolId: string): Promise<BitmovinResponse>;
    /**
     * @summary Stop prewarmed encoder pool
     * @param {string} poolId Id of the prewarmed encoder pool to be stopped
     * @throws {BitmovinError}
     * @memberof PrewarmedEncoderPoolsApi
     */
    stop(poolId: string): Promise<BitmovinResponse>;
}
