import { BaseAPI } from '../../common/BaseAPI';
import Configuration from '../../common/Configuration';
import StopApi from './stop/StopApi';
import StartApi from './start/StartApi';
import StreamsLiveCreateRequest from '../../models/StreamsLiveCreateRequest';
import StreamsLiveResponse from '../../models/StreamsLiveResponse';
import StreamsLiveUpdateRequest from '../../models/StreamsLiveUpdateRequest';
import PaginationResponse from '../../models/PaginationResponse';
import { StreamsLiveResponseListQueryParams, StreamsLiveResponseListQueryParamsBuilder } from './StreamsLiveResponseListQueryParams';
/**
 * LiveApi - object-oriented interface
 * @export
 * @class LiveApi
 * @extends {BaseAPI}
 */
export default class LiveApi extends BaseAPI {
    stop: StopApi;
    start: StartApi;
    constructor(configuration: Configuration);
    /**
     * @summary Create new live stream
     * @param {StreamsLiveCreateRequest} streamsLiveCreateRequest Create a new stream.
     * @throws {BitmovinError}
     * @memberof LiveApi
     */
    create(streamsLiveCreateRequest?: StreamsLiveCreateRequest): Promise<StreamsLiveResponse>;
    /**
     * @summary Delete Stream
     * @param {string} streamId Id of the stream.
     * @throws {BitmovinError}
     * @memberof LiveApi
     */
    delete(streamId: string): Promise<Response>;
    /**
     * @summary Get live stream by id
     * @param {string} streamId Id of the stream.
     * @throws {BitmovinError}
     * @memberof LiveApi
     */
    get(streamId: string): Promise<StreamsLiveResponse>;
    /**
     * @summary Get paginated list of live streams
     * @param {*} [queryParameters] query parameters for filtering, sorting and pagination
     * @throws {BitmovinError}
     * @memberof LiveApi
     */
    list(queryParameters?: StreamsLiveResponseListQueryParams | ((q: StreamsLiveResponseListQueryParamsBuilder) => StreamsLiveResponseListQueryParamsBuilder)): Promise<PaginationResponse<StreamsLiveResponse>>;
    /**
     * @summary Partially update live stream by id
     * @param {string} streamId Id of the stream.
     * @param {StreamsLiveUpdateRequest} streamsLiveUpdateRequest Stream fields to update.
     * @throws {BitmovinError}
     * @memberof LiveApi
     */
    patchStreamsLive(streamId: string, streamsLiveUpdateRequest?: StreamsLiveUpdateRequest): Promise<StreamsLiveResponse>;
}
