import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { ApiResponseObjectDcoVideoActivateResponse } from '../model/apiResponseObjectDcoVideoActivateResponse';
import { ApiResponseObjectDcoVideoAssetUploadResponse } from '../model/apiResponseObjectDcoVideoAssetUploadResponse';
import { ApiResponseObjectDcoVideoDeleteResponse } from '../model/apiResponseObjectDcoVideoDeleteResponse';
import { ApiResponseObjectDcoVideoGenerateSampleResponse } from '../model/apiResponseObjectDcoVideoGenerateSampleResponse';
import { ApiResponseObjectDcoVideoGeneratedCountResponse } from '../model/apiResponseObjectDcoVideoGeneratedCountResponse';
import { ApiResponseObjectDcoVideoSamplesResponse } from '../model/apiResponseObjectDcoVideoSamplesResponse';
import { ApiResponseObjectDcoVideoSettingsDTO } from '../model/apiResponseObjectDcoVideoSettingsDTO';
import { ApiResponseObjectListDcoVideoBrandGuidelineDTO } from '../model/apiResponseObjectListDcoVideoBrandGuidelineDTO';
import { ApiResponseObjectListDcoVideoDimensionDTO } from '../model/apiResponseObjectListDcoVideoDimensionDTO';
import { ApiResponseObjectListDcoVideoMusicTrackDTO } from '../model/apiResponseObjectListDcoVideoMusicTrackDTO';
import { ApiResponseObjectListDcoVideoSettingsDTO } from '../model/apiResponseObjectListDcoVideoSettingsDTO';
import { ApiResponseObjectListDcoVideoTemplateDTO } from '../model/apiResponseObjectListDcoVideoTemplateDTO';
import { ApiResponseObjectListstring } from '../model/apiResponseObjectListstring';
import { DcoVideoActivateRequest } from '../model/dcoVideoActivateRequest';
import { DcoVideoGenerateSampleRequest } from '../model/dcoVideoGenerateSampleRequest';
import { DcoVideoSettingsCreateRequest } from '../model/dcoVideoSettingsCreateRequest';
import { DcoVideoSettingsUpdateRequest } from '../model/dcoVideoSettingsUpdateRequest';
import { Configuration } from '../configuration';
import * as i0 from "@angular/core";
export declare class DCOVideoSettingsControllerService {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    constructor(httpClient: HttpClient, basePath: string, configuration: Configuration);
    /**
     * @param consumes string[] mime-types
     * @return true: consumes contains 'multipart/form-data', false: otherwise
     */
    private canConsumeForm;
    /**
     * Activate or deactivate a DCO video settings configuration
     * When activating, the catalog/video pipeline must persist {@code dvo_settings_id} (settings id) on {@code dco.DynamicVideoOutput} rows for generated product videos.
     * @param request Activate/Deactivate request
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    activateSettingsUsingPOST(request: DcoVideoActivateRequest, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectDcoVideoActivateResponse>;
    activateSettingsUsingPOST(request: DcoVideoActivateRequest, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectDcoVideoActivateResponse>>;
    activateSettingsUsingPOST(request: DcoVideoActivateRequest, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectDcoVideoActivateResponse>>;
    /**
     * Create a new DCO video settings configuration
     * JSON body. &#x60;sampleVideoUrl&#x60; is required (from POST /settings/generate-sample). &#x60;assets[]&#x60; should carry CDN URLs from POST /settings/assets/upload, or for music use &#x60;{ \&quot;type\&quot;: \&quot;PROMO_MUSIC\&quot;, \&quot;musicLibraryTrackId\&quot;: &lt;id&gt; }&#x60; from GET /music-tracks (mutually exclusive with upload URL).
     * @param request DCO Video Settings creation request
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    createSettingsUsingPOST(request: DcoVideoSettingsCreateRequest, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectDcoVideoSettingsDTO>;
    createSettingsUsingPOST(request: DcoVideoSettingsCreateRequest, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectDcoVideoSettingsDTO>>;
    createSettingsUsingPOST(request: DcoVideoSettingsCreateRequest, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectDcoVideoSettingsDTO>>;
    /**
     * Archive (soft-delete) a DCO video settings configuration
     * POST (CORS-safe). Marks the configuration as archived and inactive. The database row and assets are retained but the configuration is excluded from UI list APIs. Idempotent if already archived.
     * @param id Settings configuration ID
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    deleteSettingsUsingPOST(id: number, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectDcoVideoDeleteResponse>;
    deleteSettingsUsingPOST(id: number, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectDcoVideoDeleteResponse>>;
    deleteSettingsUsingPOST(id: number, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectDcoVideoDeleteResponse>>;
    /**
     * Generate a sample video preview from asset URLs
     * JSON body. &#x60;brandGuidelineId&#x60; is required. Pass &#x60;assets[]&#x60; with CDN URLs (from POST /settings/assets/upload), including &#x60;PROMO_MUSIC&#x60; when required. Omit &#x60;settingsId&#x60; for create-preview; set &#x60;settingsId&#x60; to merge with stored assets for edit. On edit-preview, send &#x60;\&quot;feedKey\&quot;: null&#x60; or &#x60;\&quot;feedKey\&quot;: \&quot;\&quot;&#x60; to clear the stored feed key; omit the field to keep the stored value. Response &#x60;assets&#x60; map includes &#x60;PROMO_MUSIC&#x60; when music is set. Delegates to the external DCO video render engine configured via &#x60;dcovideo.video-engine.url&#x60;.
     * @param request Generate sample request
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    generateSampleUsingPOST(request: DcoVideoGenerateSampleRequest, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectDcoVideoGenerateSampleResponse>;
    generateSampleUsingPOST(request: DcoVideoGenerateSampleRequest, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectDcoVideoGenerateSampleResponse>>;
    generateSampleUsingPOST(request: DcoVideoGenerateSampleRequest, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectDcoVideoGenerateSampleResponse>>;
    /**
     * Get all brand guidelines for a given advertiser
     *
     * @param advertiserId Advertiser ID
     * @param includeInactive Include inactive brand guidelines (currently a no-op: AdvertiserLayoutVariables has no is_active column; reserved for forward compatibility)
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getBrandGuidelinesUsingGET(advertiserId: number, includeInactive?: boolean, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectListDcoVideoBrandGuidelineDTO>;
    getBrandGuidelinesUsingGET(advertiserId: number, includeInactive?: boolean, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectListDcoVideoBrandGuidelineDTO>>;
    getBrandGuidelinesUsingGET(advertiserId: number, includeInactive?: boolean, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectListDcoVideoBrandGuidelineDTO>>;
    /**
     * Get output video dimensions for an advertiser&#39;s DCO video settings
     * Returns de-duplicated {width, height} from DynamicVideoTemplates for each distinct template on non-archived settings (dvt_video_width x dvt_video_height). Does not include creative-set DCO HTML layout placement sizes.
     * @param advertiserId Advertiser ID
     * @param includeInactive Include dimensions reachable via inactive settings
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getDimensionsUsingGET(advertiserId: number, includeInactive?: boolean, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectListDcoVideoDimensionDTO>;
    getDimensionsUsingGET(advertiserId: number, includeInactive?: boolean, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectListDcoVideoDimensionDTO>>;
    getDimensionsUsingGET(advertiserId: number, includeInactive?: boolean, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectListDcoVideoDimensionDTO>>;
    /**
     * Get all distinct active feed keys for a given advertiser
     *
     * @param advertiserId Advertiser ID
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getFeedKeysUsingGET(advertiserId: number, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectListstring>;
    getFeedKeysUsingGET(advertiserId: number, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectListstring>>;
    getFeedKeysUsingGET(advertiserId: number, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectListstring>>;
    /**
     * Get generated video count for a DCO video settings configuration
     *
     * @param id Settings configuration ID
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getGeneratedVideoCountUsingGET(id: number, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectDcoVideoGeneratedCountResponse>;
    getGeneratedVideoCountUsingGET(id: number, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectDcoVideoGeneratedCountResponse>>;
    getGeneratedVideoCountUsingGET(id: number, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectDcoVideoGeneratedCountResponse>>;
    /**
     * List generated videos for a DCO video settings configuration
     * Returns paginated product videos for the settings row from {@code DynamicVideoOutput} when {@code dcovideo.mysql.enable-prod-output-table&#x3D;true}, otherwise from {@code DcoVideoOutput} (mirrors render-engine ENABLE_PROD_OUTPUT_TABLE). (scoped by advertiser, template, and feed key). Optional status filter: COMPLETED, FAILED, PENDING, IN_PROGRESS, or all (default). Results are ordered by last update time ({@code dva_updated_at}), falling back to creation time ({@code dva_created_at}) when update time is missing or zero.
     * @param id Settings configuration ID
     * @param page Page number (0-indexed)
     * @param reqId request id
     * @param size Number of items per page
     * @param status Filter by status: COMPLETED, FAILED, PENDING, IN_PROGRESS, all
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getGeneratedVideosUsingGET(id: number, page?: number, reqId?: string, size?: number, status?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectDcoVideoSamplesResponse>;
    getGeneratedVideosUsingGET(id: number, page?: number, reqId?: string, size?: number, status?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectDcoVideoSamplesResponse>>;
    getGeneratedVideosUsingGET(id: number, page?: number, reqId?: string, size?: number, status?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectDcoVideoSamplesResponse>>;
    /**
     * Get all DCO video settings for an advertiser
     * Assets are always included in the response. Background music is returned in &#x60;assets[]&#x60; as &#x60;type&#x3D;PROMO_MUSIC&#x60;. Rows with no associated assets return an empty &#x60;assets&#x60; array. Embedded template details include active and inactive templates with id &gt; 11 only. Returns both active and inactive configurations by default; pass &#x60;includeInactive&#x3D;false&#x60; to hide inactive rows. Archived (soft-deleted) configurations are never returned. Results are ordered by last modified time ({@code dvs_modified_at}), falling back to creation time when modified time is missing.
     * @param advertiserId Advertiser ID
     * @param includeInactive Include inactive configurations (defaults to true)
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getSettingsUsingGET(advertiserId: number, includeInactive?: boolean, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectListDcoVideoSettingsDTO>;
    getSettingsUsingGET(advertiserId: number, includeInactive?: boolean, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectListDcoVideoSettingsDTO>>;
    getSettingsUsingGET(advertiserId: number, includeInactive?: boolean, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectListDcoVideoSettingsDTO>>;
    /**
     * Get available DCO video templates
     * Returns all templates (active and inactive) from DynamicVideoTemplates with id &gt; 11. Embedded template details on GET /settings/{advertiserId} use the same id threshold. Optional hasPromoVideo / hasPromoBanner / hasBackgroundImage filter templates that require those assets. Omit a flag (or pass nothing) to list all matching templates; pass false to hide templates that require an asset the advertiser does not have.
     * @param advertiserId Advertiser ID
     * @param hasBackgroundImage Has background image asset; omit to skip filtering on background image
     * @param hasPromoBanner Has promo banner asset; omit to skip filtering on promo banner
     * @param hasPromoVideo Has promo video asset; omit to skip filtering on promo video
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getTemplatesUsingGET(advertiserId: number, hasBackgroundImage?: boolean, hasPromoBanner?: boolean, hasPromoVideo?: boolean, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectListDcoVideoTemplateDTO>;
    getTemplatesUsingGET(advertiserId: number, hasBackgroundImage?: boolean, hasPromoBanner?: boolean, hasPromoVideo?: boolean, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectListDcoVideoTemplateDTO>>;
    getTemplatesUsingGET(advertiserId: number, hasBackgroundImage?: boolean, hasPromoBanner?: boolean, hasPromoVideo?: boolean, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectListDcoVideoTemplateDTO>>;
    /**
     * List background music tracks for DCO video settings
     * Returns the global music catalog for browse / play / select in the settings UI. When the user picks a track, send PROMO_MUSIC with musicLibraryTrackId (no file upload).
     * @param includeInactive Include inactive catalog rows (defaults to false)
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    listMusicTracksUsingGET(includeInactive?: boolean, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectListDcoVideoMusicTrackDTO>;
    listMusicTracksUsingGET(includeInactive?: boolean, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectListDcoVideoMusicTrackDTO>>;
    listMusicTracksUsingGET(includeInactive?: boolean, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectListDcoVideoMusicTrackDTO>>;
    /**
     * Update an existing DCO video settings configuration
     * JSON body. &#x60;assets[]&#x60; (when supplied) should carry CDN URLs from POST /settings/assets/upload, or &#x60;musicLibraryTrackId&#x60; from GET /music-tracks for PROMO_MUSIC. To clear music, send &#x60;{ \&quot;type\&quot;: \&quot;PROMO_MUSIC\&quot;, \&quot;url\&quot;: \&quot;\&quot; }&#x60;. To clear feed key, send &#x60;\&quot;feedKey\&quot;: null&#x60; or &#x60;\&quot;feedKey\&quot;: \&quot;\&quot;&#x60;; omit the field to keep the stored value.
     * @param id Settings configuration ID
     * @param request DCO Video Settings update request
     * @param regenerateSample When true (default), clear sampleVideoUrl if template or assets change unless sampleVideoUrl is supplied in the JSON request. Set false to keep the existing sample URL.
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    updateSettingsUsingPOST(id: number, request: DcoVideoSettingsUpdateRequest, regenerateSample?: boolean, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectDcoVideoSettingsDTO>;
    updateSettingsUsingPOST(id: number, request: DcoVideoSettingsUpdateRequest, regenerateSample?: boolean, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectDcoVideoSettingsDTO>>;
    updateSettingsUsingPOST(id: number, request: DcoVideoSettingsUpdateRequest, regenerateSample?: boolean, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectDcoVideoSettingsDTO>>;
    /**
     * Upload DCO video staging assets (CDN URLs only, no settings row)
     * Multipart. Provide &#x60;advertiserId&#x60; and &#x60;templateId&#x60; as form fields and one or more of &#x60;file_PROMO_VIDEO&#x60;, &#x60;file_PROMO_BANNER&#x60;, &#x60;file_BACKGROUND_IMAGE&#x60;, and/or optional &#x60;file_PROMO_MUSIC&#x60;. Use returned &#x60;assets[]&#x60; URLs (including &#x60;PROMO_MUSIC&#x60;) in POST /settings/generate-sample, then pass &#x60;sampleVideoUrl&#x60; from that response when creating settings.
     * @param advertiserId Advertiser ID
     * @param templateId Template ID (storage path)
     * @param file_BACKGROUND_IMAGE Background image file
     * @param file_PROMO_BANNER Promo banner file
     * @param file_PROMO_MUSIC Background music file (omit when using musicLibraryTrackId in settings JSON)
     * @param file_PROMO_VIDEO Promo video file
     * @param reqId request id
     * @param token Auth Token
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    uploadStagingAssetsUsingPOST(advertiserId: any, templateId: any, file_BACKGROUND_IMAGE?: Blob, file_PROMO_BANNER?: Blob, file_PROMO_MUSIC?: Blob, file_PROMO_VIDEO?: Blob, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectDcoVideoAssetUploadResponse>;
    uploadStagingAssetsUsingPOST(advertiserId: any, templateId: any, file_BACKGROUND_IMAGE?: Blob, file_PROMO_BANNER?: Blob, file_PROMO_MUSIC?: Blob, file_PROMO_VIDEO?: Blob, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectDcoVideoAssetUploadResponse>>;
    uploadStagingAssetsUsingPOST(advertiserId: any, templateId: any, file_BACKGROUND_IMAGE?: Blob, file_PROMO_BANNER?: Blob, file_PROMO_MUSIC?: Blob, file_PROMO_VIDEO?: Blob, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectDcoVideoAssetUploadResponse>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DCOVideoSettingsControllerService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DCOVideoSettingsControllerService>;
}
