import { BaseAPI } from '../../common/BaseAPI';
import Configuration from '../../common/Configuration';
import BitmovinResponse from '../../models/BitmovinResponse';
import WatchFolder from '../../models/WatchFolder';
import PaginationResponse from '../../models/PaginationResponse';
import { WatchFolderListQueryParams, WatchFolderListQueryParamsBuilder } from './WatchFolderListQueryParams';
/**
 * WatchFoldersApi - object-oriented interface
 * @export
 * @class WatchFoldersApi
 * @extends {BaseAPI}
 */
export default class WatchFoldersApi extends BaseAPI {
    constructor(configuration: Configuration);
    /**
     * @summary Create Watch Folder
     * @param {WatchFolder} watchFolder The Watch Folder to be created
     * @throws {BitmovinError}
     * @memberof WatchFoldersApi
     */
    create(watchFolder?: WatchFolder): Promise<WatchFolder>;
    /**
     * @summary Delete Watch Folder
     * @param {string} watchFolderId Id of the Watch Folder
     * @throws {BitmovinError}
     * @memberof WatchFoldersApi
     */
    delete(watchFolderId: string): Promise<BitmovinResponse>;
    /**
     * @summary Watch Folder details
     * @param {string} watchFolderId Id of the Watch Folder
     * @throws {BitmovinError}
     * @memberof WatchFoldersApi
     */
    get(watchFolderId: string): Promise<WatchFolder>;
    /**
     * @summary List all Watch Folders
     * @param {*} [queryParameters] query parameters for filtering, sorting and pagination
     * @throws {BitmovinError}
     * @memberof WatchFoldersApi
     */
    list(queryParameters?: WatchFolderListQueryParams | ((q: WatchFolderListQueryParamsBuilder) => WatchFolderListQueryParamsBuilder)): Promise<PaginationResponse<WatchFolder>>;
    /**
     * @summary Start Watch Folder
     * @param {string} watchFolderId Id of the Watch Folder
     * @throws {BitmovinError}
     * @memberof WatchFoldersApi
     */
    start(watchFolderId: string): Promise<BitmovinResponse>;
    /**
     * @summary Stop Watch Folder
     * @param {string} watchFolderId Id of the Watch Folder
     * @throws {BitmovinError}
     * @memberof WatchFoldersApi
     */
    stop(watchFolderId: string): Promise<BitmovinResponse>;
}
