import { BaseAPI } from '../../../common/BaseAPI';
import Configuration from '../../../common/Configuration';
import CustomdataApi from './customdata/CustomdataApi';
import InputApi from './input/InputApi';
import InputsApi from './inputs/InputsApi';
import FiltersApi from './filters/FiltersApi';
import BurnInSubtitlesApi from './burnInSubtitles/BurnInSubtitlesApi';
import WatermarkingApi from './watermarking/WatermarkingApi';
import CaptionsApi from './captions/CaptionsApi';
import BifsApi from './bifs/BifsApi';
import HdrApi from './hdr/HdrApi';
import ThumbnailsApi from './thumbnails/ThumbnailsApi';
import SpritesApi from './sprites/SpritesApi';
import QcApi from './qc/QcApi';
import BitmovinResponse from '../../../models/BitmovinResponse';
import Stream from '../../../models/Stream';
import PaginationResponse from '../../../models/PaginationResponse';
import { StreamListQueryParams, StreamListQueryParamsBuilder } from './StreamListQueryParams';
/**
 * StreamsApi - object-oriented interface
 * @export
 * @class StreamsApi
 * @extends {BaseAPI}
 */
export default class StreamsApi extends BaseAPI {
    customdata: CustomdataApi;
    input: InputApi;
    inputs: InputsApi;
    filters: FiltersApi;
    burnInSubtitles: BurnInSubtitlesApi;
    watermarking: WatermarkingApi;
    captions: CaptionsApi;
    bifs: BifsApi;
    hdr: HdrApi;
    thumbnails: ThumbnailsApi;
    sprites: SpritesApi;
    qc: QcApi;
    constructor(configuration: Configuration);
    /**
     * @summary Add Stream
     * @param {string} encodingId Id of the encoding.
     * @param {Stream} stream The Stream to be created
     * @throws {BitmovinError}
     * @memberof StreamsApi
     */
    create(encodingId: string, stream?: Stream): Promise<Stream>;
    /**
     * @summary Delete Stream
     * @param {string} encodingId Id of the encoding.
     * @param {string} streamId Id of the stream.
     * @throws {BitmovinError}
     * @memberof StreamsApi
     */
    delete(encodingId: string, streamId: string): Promise<BitmovinResponse>;
    /**
     * @summary Stream Details
     * @param {string} encodingId Id of the encoding.
     * @param {string} streamId Id of the stream.
     * @throws {BitmovinError}
     * @memberof StreamsApi
     */
    get(encodingId: string, streamId: string): Promise<Stream>;
    /**
     * @summary List Streams
     * @param {string} encodingId Id of the encoding.
     * @param {*} [queryParameters] query parameters for filtering, sorting and pagination
     * @throws {BitmovinError}
     * @memberof StreamsApi
     */
    list(encodingId: string, queryParameters?: StreamListQueryParams | ((q: StreamListQueryParamsBuilder) => StreamListQueryParamsBuilder)): Promise<PaginationResponse<Stream>>;
}
