import { BaseAPI } from '../../../common/BaseAPI';
import Configuration from '../../../common/Configuration';
import StreamsDomainRestrictionCreateRequest from '../../../models/StreamsDomainRestrictionCreateRequest';
import StreamsDomainRestrictionResponse from '../../../models/StreamsDomainRestrictionResponse';
import StreamsDomainRestrictionUpdateRequest from '../../../models/StreamsDomainRestrictionUpdateRequest';
import PaginationResponse from '../../../models/PaginationResponse';
import { StreamsDomainRestrictionResponseListQueryParams, StreamsDomainRestrictionResponseListQueryParamsBuilder } from './StreamsDomainRestrictionResponseListQueryParams';
/**
 * DomainRestrictionApi - object-oriented interface
 * @export
 * @class DomainRestrictionApi
 * @extends {BaseAPI}
 */
export default class DomainRestrictionApi extends BaseAPI {
    constructor(configuration: Configuration);
    /**
     * @summary Create new streams domain restriction
     * @param {StreamsDomainRestrictionCreateRequest} streamsDomainRestrictionCreateRequest Create a new streams domain restriction
     * @throws {BitmovinError}
     * @memberof DomainRestrictionApi
     */
    create(streamsDomainRestrictionCreateRequest?: StreamsDomainRestrictionCreateRequest): Promise<StreamsDomainRestrictionResponse>;
    /**
     * @summary Delete streams domain restriction by id
     * @param {string} domainRestrictionId Id of the streams domain restriction.
     * @throws {BitmovinError}
     * @memberof DomainRestrictionApi
     */
    delete(domainRestrictionId: string): Promise<Response>;
    /**
     * @summary Get streams domain restriction config by id
     * @param {string} domainRestrictionId Id of the streams domain restriction.
     * @throws {BitmovinError}
     * @memberof DomainRestrictionApi
     */
    get(domainRestrictionId: string): Promise<StreamsDomainRestrictionResponse>;
    /**
     * @summary Get paginated list of domain restriction configurations
     * @param {*} [queryParameters] query parameters for filtering, sorting and pagination
     * @throws {BitmovinError}
     * @memberof DomainRestrictionApi
     */
    list(queryParameters?: StreamsDomainRestrictionResponseListQueryParams | ((q: StreamsDomainRestrictionResponseListQueryParamsBuilder) => StreamsDomainRestrictionResponseListQueryParamsBuilder)): Promise<PaginationResponse<StreamsDomainRestrictionResponse>>;
    /**
     * @summary Partially update streams domain restriction by id
     * @param {string} domainRestrictionId Id of the streams domain restriction.
     * @param {StreamsDomainRestrictionUpdateRequest} streamsDomainRestrictionUpdateRequest The updated streams domain restriction object.
     * @throws {BitmovinError}
     * @memberof DomainRestrictionApi
     */
    patchStreamsDomainRestriction(domainRestrictionId: string, streamsDomainRestrictionUpdateRequest?: StreamsDomainRestrictionUpdateRequest): Promise<StreamsDomainRestrictionResponse>;
}
