import { BaseAPI } from '../../common/BaseAPI';
import Configuration from '../../common/Configuration';
import LiveApi from './live/LiveApi';
import CustomdataApi from './customdata/CustomdataApi';
import StreamsApi from './streams/StreamsApi';
import InputStreamsApi from './inputStreams/InputStreamsApi';
import MuxingsApi from './muxings/MuxingsApi';
import TemplateApi from './template/TemplateApi';
import TransferRetriesApi from './transferRetries/TransferRetriesApi';
import OutputPathsApi from './outputPaths/OutputPathsApi';
import CaptionsApi from './captions/CaptionsApi';
import SidecarsApi from './sidecars/SidecarsApi';
import KeyframesApi from './keyframes/KeyframesApi';
import Scte35TriggersApi from './scte35Triggers/Scte35TriggersApi';
import BitmovinResponse from '../../models/BitmovinResponse';
import Encoding from '../../models/Encoding';
import ReprioritizeEncodingRequest from '../../models/ReprioritizeEncodingRequest';
import RescheduleEncodingRequest from '../../models/RescheduleEncodingRequest';
import StartEncodingRequest from '../../models/StartEncodingRequest';
import Task from '../../models/Task';
import PaginationResponse from '../../models/PaginationResponse';
import { EncodingListQueryParams, EncodingListQueryParamsBuilder } from './EncodingListQueryParams';
/**
 * EncodingsApi - object-oriented interface
 * @export
 * @class EncodingsApi
 * @extends {BaseAPI}
 */
export default class EncodingsApi extends BaseAPI {
    live: LiveApi;
    customdata: CustomdataApi;
    streams: StreamsApi;
    inputStreams: InputStreamsApi;
    muxings: MuxingsApi;
    template: TemplateApi;
    transferRetries: TransferRetriesApi;
    outputPaths: OutputPathsApi;
    captions: CaptionsApi;
    sidecars: SidecarsApi;
    keyframes: KeyframesApi;
    scte35Triggers: Scte35TriggersApi;
    constructor(configuration: Configuration);
    /**
     * @summary Create Encoding
     * @param {Encoding} encoding The Encoding to be created
     * @throws {BitmovinError}
     * @memberof EncodingsApi
     */
    create(encoding?: Encoding): Promise<Encoding>;
    /**
     * @summary Delete Encoding
     * @param {string} encodingId Id of the encoding.
     * @throws {BitmovinError}
     * @memberof EncodingsApi
     */
    delete(encodingId: string): Promise<BitmovinResponse>;
    /**
     * @summary Encoding Details
     * @param {string} encodingId Id of the encoding.
     * @throws {BitmovinError}
     * @memberof EncodingsApi
     */
    get(encodingId: string): Promise<Encoding>;
    /**
     * @summary Encoding Start Details
     * @param {string} encodingId Id of the encoding
     * @throws {BitmovinError}
     * @memberof EncodingsApi
     */
    getStartRequest(encodingId: string): Promise<StartEncodingRequest>;
    /**
     * @summary List all Encodings
     * @param {*} [queryParameters] query parameters for filtering, sorting and pagination
     * @throws {BitmovinError}
     * @memberof EncodingsApi
     */
    list(queryParameters?: EncodingListQueryParams | ((q: EncodingListQueryParamsBuilder) => EncodingListQueryParamsBuilder)): Promise<PaginationResponse<Encoding>>;
    /**
     * @summary Reprioritize Encoding
     * @param {string} encodingId Id of the encoding.
     * @param {ReprioritizeEncodingRequest} reprioritizeEncodingRequest Reprioritization options
     * @throws {BitmovinError}
     * @memberof EncodingsApi
     */
    reprioritize(encodingId: string, reprioritizeEncodingRequest?: ReprioritizeEncodingRequest): Promise<BitmovinResponse>;
    /**
     * @summary Reschedule Encoding
     * @param {string} encodingId Id of the encoding.
     * @param {RescheduleEncodingRequest} rescheduleEncodingRequest Rescheduling options
     * @throws {BitmovinError}
     * @memberof EncodingsApi
     */
    reschedule(encodingId: string, rescheduleEncodingRequest?: RescheduleEncodingRequest): Promise<BitmovinResponse>;
    /**
     * @summary Start VoD Encoding
     * @param {string} encodingId Id of the encoding
     * @param {StartEncodingRequest} [startEncodingRequest] Encoding Startup Options
     * @throws {BitmovinError}
     * @memberof EncodingsApi
     */
    start(encodingId: string, startEncodingRequest?: StartEncodingRequest): Promise<BitmovinResponse>;
    /**
     * @summary Encoding Status
     * @param {string} encodingId Id of the encoding
     * @throws {BitmovinError}
     * @memberof EncodingsApi
     */
    status(encodingId: string): Promise<Task>;
    /**
     * @summary Stop Encoding
     * @param {string} encodingId Id of the encoding
     * @throws {BitmovinError}
     * @memberof EncodingsApi
     */
    stop(encodingId: string): Promise<BitmovinResponse>;
}
