import { BaseAPI } from '../../common/BaseAPI';
import Configuration from '../../common/Configuration';
import StreamsVideoCreateRequest from '../../models/StreamsVideoCreateRequest';
import StreamsVideoResponse from '../../models/StreamsVideoResponse';
import StreamsVideoUpdateRequest from '../../models/StreamsVideoUpdateRequest';
import PaginationResponse from '../../models/PaginationResponse';
import { StreamsVideoResponseListQueryParams, StreamsVideoResponseListQueryParamsBuilder } from './StreamsVideoResponseListQueryParams';
/**
 * VideoApi - object-oriented interface
 * @export
 * @class VideoApi
 * @extends {BaseAPI}
 */
export default class VideoApi extends BaseAPI {
    constructor(configuration: Configuration);
    /**
     * @summary Create new Streams video
     * @param {StreamsVideoCreateRequest} streamsVideoCreateRequest Create a new stream.
     * @throws {BitmovinError}
     * @memberof VideoApi
     */
    create(streamsVideoCreateRequest?: StreamsVideoCreateRequest): Promise<StreamsVideoResponse>;
    /**
     * @summary Delete Stream
     * @param {string} streamId Id of the stream.
     * @throws {BitmovinError}
     * @memberof VideoApi
     */
    delete(streamId: string): Promise<Response>;
    /**
     * @summary Get Streams video by id
     * @param {string} streamId Id of the stream.
     * @throws {BitmovinError}
     * @memberof VideoApi
     */
    get(streamId: string): Promise<StreamsVideoResponse>;
    /**
     * @summary Get paginated list of Streams videos
     * @param {*} [queryParameters] query parameters for filtering, sorting and pagination
     * @throws {BitmovinError}
     * @memberof VideoApi
     */
    list(queryParameters?: StreamsVideoResponseListQueryParams | ((q: StreamsVideoResponseListQueryParamsBuilder) => StreamsVideoResponseListQueryParamsBuilder)): Promise<PaginationResponse<StreamsVideoResponse>>;
    /**
     * @summary Partially update video stream by id
     * @param {string} streamId Id of the stream.
     * @param {StreamsVideoUpdateRequest} streamsVideoUpdateRequest Stream fields to update.
     * @throws {BitmovinError}
     * @memberof VideoApi
     */
    patchStreamsVideo(streamId: string, streamsVideoUpdateRequest?: StreamsVideoUpdateRequest): Promise<StreamsVideoResponse>;
}
