import { CmpData as _CmpData1, ConsentData, SettingType, ConsentActionType, ConsentType as _ConsentType1, I18nData, CmpDataRequestData, DeviceStorage, SettingsCoreData, AutoBlockerConfiguration, CcpaRegionsType, UsLegislation, TcfPolicyVersion, DpsData, DpsDataServices, Legislation, ValidAcmVendor, CmpTheme, ConsentType, EmbeddingsTheme, LayoutDirection, PrivacyButtonTheme, ScreenType, ThemeData, UiTheme, UiView, ucCmpTheme, ucEmbeddingsTheme, ucPrivacyButtonTheme, GdprConsentData, UsConsentData, UiView as _UiView1, BaseI18nData, ServiceI18n, UsI18nData, ServiceData, GoogleConsentModeData, LanguagesData, SettingData, TemplateData, CmpTheme as _CmpTheme1, CustomCmpTheme, CustomEmbeddingsTheme, CustomPrivacyButtonTheme, EmbeddingsTheme as _EmbeddingsTheme1, LayoutDirection as _LayoutDirection1, PrivacyButtonTheme as _PrivacyButtonTheme1, ScreenType as _ScreenType1, ThemeData as _ThemeData1, UcCmpTheme, UcEmbeddingsTheme, UcPrivacyButtonTheme, UiData as _UiData1, GdprI18nData, TcfI18nData, TcfConsentData, IntegrationsData, IntegrationScript, StoredInfoItem, TcfVendorInfo, IabData, CategoryData, Language, UsCmpData as _UsCmpData1, GdprCmpData as _GdprCmpData1, TcfCmpData as _TcfCmpData1, CmpData, GdprCmpData, UsCmpData, TcfCmpData } from "@usercentrics/cmp-web-api-cmp-server";
import { Vendor, EncodingOptions, TCModel } from "@iabtechlabtcf/core";
import { UsCmpController as _UsCmpController2 } from "controllers/CmpController/UsCmpController";
import { GdprCmpController as _GdprCmpController2 } from "controllers/CmpController/GdprCmpController";
import { TcfCmpController as _TcfCmpController2 } from "controllers/CmpController/TcfCmpController";
interface AnalyticsServiceOptions {
    euMode: boolean;
    sandbox: boolean;
    settingsId: string;
    abTestVariant?: string;
}
interface AnalyticsServiceDomains {
    analytics: string;
}
interface TagLoggerData {
    settingsId: string;
    source: string;
    entries: string[];
}
interface ApiServiceOptions {
    euMode?: boolean;
    sandbox?: boolean;
    cacheVersion?: number;
}
interface ApiServiceDomains {
    api: string;
    consent: string;
    crossDevice: string;
    logger: string;
}
interface ApiSaveConsentData {
    analyticsEnabled?: boolean;
    consent: ConsentData;
    crossDeviceEnabled?: boolean;
    services: _CmpData1['dps']['services'];
    settingsType: SettingType;
    ucString?: string;
    vendors?: (number | number[])[][];
}
interface CrossDomainServiceDomains {
    cdn: string;
}
interface UserConsentResponse {
    action: ConsentActionType;
    consentId: string;
    settingsVersion: string;
    status: boolean;
    templateId: string;
    timestamp: string | number;
    updatedBy: _ConsentType1;
}
interface StorageTCF {
    acString: string;
    tcString: string;
    timestamp: number;
    vendors: (number | number[])[][];
    vendorsDisclosed?: number[];
}
interface StorageCcpa {
    timestamp: number;
    ccpaString: string;
}
interface UserSessionData {
    consents: UserConsentResponse[];
    controllerId: string;
    language: string;
    tcf?: StorageTCF;
    ccpa?: StorageCcpa;
}
type GcmConsent = 'granted' | 'denied';
interface StorageGcm {
    analyticsStorage?: GcmConsent;
    adStorage?: GcmConsent;
    adPersonalization?: GcmConsent;
    adUserData?: GcmConsent;
    adsDataRedaction?: boolean;
}
interface StorageConsent {
    services: Record<string, {
        name: string;
        consent: boolean;
    }>;
}
interface UiData {
    language: string;
}
export interface StorageData {
    gcm: StorageGcm;
    consent: StorageConsent;
}
type CmpEventSource = UiView | 'embeddings' | '__ucCmp';
export enum CMP_EVENT_TYPE {
    CMP_SHOWN = "CMP_SHOWN",
    ACCEPT_ALL = "ACCEPT_ALL",
    DENY_ALL = "DENY_ALL",
    SAVE = "SAVE",
    COOKIE_POLICY_LINK = "COOKIE_POLICY_LINK",
    IMPRINT_LINK = "IMPRINT_LINK",
    MORE_INFORMATION_LINK = "MORE_INFORMATION_LINK",
    PRIVACY_POLICY_LINK = "PRIVACY_POLICY_LINK",
    CCPA_TOGGLES_ON = "CCPA_TOGGLES_ON",
    CCPA_TOGGLES_OFF = "CCPA_TOGGLES_OFF",
    SAY_MINE_LINK = "SAY_MINE_LINK"
}
declare class AnalyticsService {
    constructor({ settingsId, abTestVariant, euMode, sandbox }: AnalyticsServiceOptions);
    /**
     * Set analytics pixel (via network call) and dispatch custom events
     * @param {CMP_EVENT_TYPE} cmpEventType - The event type.
     * @param {CmpEventSource | undefined} source - The event source.
     * @returns {void}
     */
    setAnalyticsPixel: (cmpEventType: CMP_EVENT_TYPE, source?: CmpEventSource) => void;
}
type UetConsent = 'granted' | 'denied';
interface UetData {
    adStorage: UetConsent;
}
declare class CustomEventService {
    constructor(eventNames: string[]);
    /**
     * Dispatches UC_CONSENT and custom events with consent details
     * @param {ConsentDetails} consentDetails - The consent details data.
     * @returns {void}
     */
    dispatchConsentDetails(consentDetails: ConsentDetails): void;
    dispatchUcGcmUpdateEvent(detail: StorageGcm): void;
    dispatchUcUetUpdateEvent(detail: UetData): void;
    /**
     * Dispatches events to the window
     * @param {string} name - The event name.
     * @param {unknown} data - The event data.
     * @returns {void}
     */
    dispatch(name: string, data: unknown): void;
}
declare class DataLayerService {
    constructor(dataLayers: string[]);
    /**
     * Pushes information into the dataLayer window object
     * @param {unknown} data - The data to be pushed.
     * @returns {void}
     */
    push(data: unknown): void;
}
declare class ApiService {
    constructor(options: ApiServiceOptions);
    /**
     * Get CMP Data
     * @param {CmpDataRequestData} reuqestData - The network request data.
     * @returns {Promise<CmpData>} - The CMP Data.
     */
    fetchCmpData({ params, query }: CmpDataRequestData): Promise<_CmpData1>;
    /**
     * Get Core Data via Ruleset id
     * @param {string} ruleSetId - The ruleset id.
     * @param {UserLocation | undefined} location - The user location.
     * @returns {Promise<CmpData>} - The Core Data.
     */
    fetchRuleSetCoreData(ruleSetId: string, location?: UserLocation): Promise<{
        location: UserLocation;
        ruleSetCoreData: {
            id: string;
            version: string;
            sandbox?: true;
            abTesting?: {
                provider: "external" | "internal";
                variants: string[];
            };
            languages: string[];
            cmp: {
                mainDomain?: string;
                version: string;
                type: "gdpr" | "tcf" | "us";
            };
            autoBlockerConfiguration?: AutoBlockerConfiguration;
            crossDeviceConsentSharingEnabled?: true;
            crossDomainConsentSharingEnabled?: true;
            enableBotDetection?: true;
            ruleSetNoShow: true;
            ccpa?: {
                regions: CcpaRegionsType[];
                legislation: UsLegislation;
            };
            tcf?: {
                vendorsListVersion: number;
                policyVersion: TcfPolicyVersion;
            };
            gpp?: {
                cmpId: number;
                cmpVersion: number;
            };
            allowedDomains?: {
                list: string[];
                showErrorCmp?: true;
            };
            cachingPeriod?: "SHORT" | "DEFAULT";
        };
    }>;
    /**
     * Get i18n Data
     * @param {string} settingsId - The settings id.
     * @param {SettingType} settingsType - The settings type.
     * @param {string} settingsVersion - The settings version.
     * @param {string} language - The chosen language.
     * @returns {Promise<ApiI18nData | null>} - The i18n Data.
     */
    fetchI18nData({ settingsId, settingsType, settingsVersion, language, activeTcfVendorsListVersion, previousTcfVendorsListVersion, previousTcfPolicyVersion, }: {
        settingsId: string;
        settingsType: SettingType;
        settingsVersion: string;
        language: string;
        activeTcfVendorsListVersion?: number;
        previousTcfVendorsListVersion?: number;
        previousTcfPolicyVersion?: number;
    }): Promise<I18nData | null>;
    /**
     * Get Settings Core Data
     * @param {string} settingsId - The settings id.
     * @param {{ draft?: boolean }} options - Options.
     * @returns {Promise<{location: UserLocation; settingsCoreData: SettingsCoreData;}>} - The Settings Core Data.
     */
    fetchSettingsCoreData(settingsId: string, options?: {
        draft?: true;
    }): Promise<{
        location: UserLocation;
        settingsCoreData: SettingsCoreData;
    }>;
    /**
     * Get Stored Information data via URL
     * @param {string} url - The stored information url.
     * @returns {Promise<DeviceStorage | null>} - The Stored Information.
     */
    fetchStoredInfoData(url: string): Promise<DeviceStorage | null>;
    /**
     * Get Settings Data via Settings Id
     * @param {string} settingsId - The settings id.
     * @param {{ location?: UserLocation; language?: string; draft?: true }} options - Options.
     * @returns {Promise<{location: UserLocation; settingsCoreData: SettingsCoreData; language: string | undefined;}>} - The Settings Data.
     */
    fetchInitDataBySettingsId(settingsId: string, options?: {
        location?: UserLocation;
        language?: string;
        draft?: true;
    }): Promise<{
        location: UserLocation;
        settingsCoreData: SettingsCoreData;
        language: string | undefined;
    }>;
    /**
     * Get Settings Data via Ruleset Id
     * @param {string} ruleSetId - The ruleset id.
     * @param {UserLocation | undefined} location - The user location.
     * @returns {Promise<{location: UserLocation; settingsCoreData: SettingsCoreData;}>} - The Settings Data.
     */
    fetchInitDataByRuleSetId(ruleSetId: string, location?: UserLocation): Promise<{
        location: UserLocation;
        settingsCoreData: {
            id: string;
            version: string;
            sandbox?: true;
            abTesting?: {
                provider: "external" | "internal";
                variants: string[];
            };
            languages: string[];
            cmp: {
                mainDomain?: string;
                version: string;
                type: "gdpr" | "tcf" | "us";
            };
            autoBlockerConfiguration?: AutoBlockerConfiguration;
            crossDeviceConsentSharingEnabled?: true;
            crossDomainConsentSharingEnabled?: true;
            enableBotDetection?: true;
            ruleSetNoShow: true;
            ccpa?: {
                regions: CcpaRegionsType[];
                legislation: UsLegislation;
            };
            tcf?: {
                vendorsListVersion: number;
                policyVersion: TcfPolicyVersion;
            };
            gpp?: {
                cmpId: number;
                cmpVersion: number;
            };
            allowedDomains?: {
                list: string[];
                showErrorCmp?: true;
            };
            cachingPeriod?: "SHORT" | "DEFAULT";
        };
    }>;
    /**
     * Save consents data remotely
     * @param {ApiSaveConsentData} consentData - The consent data.
     * @returns {Promise<boolean>} - True if request successful.
     */
    saveConsentData({ services, consent, settingsType, vendors, ucString, analyticsEnabled, crossDeviceEnabled, }: ApiSaveConsentData): Promise<boolean>;
    /**
     * Get UC String for controller ID consent restoration
     * @param {string} controllerId - The controller id.
     * @param {string} settingsId - The settings id.
     * @returns {Promise<{ucString: string} | null>} - The UC String
     */
    fetchUcStringForRestoration(controllerId: string, settingsId: string): Promise<any>;
    sendTagLoggerData({ settingsId, source, entries }: TagLoggerData): void;
}
declare class CrossDomainService {
    constructor(settingsId: string);
    /**
     * Set consent string into the CDCS iframe
     * @param {string} consentString - Consent string.
     * @returns {Promise<boolean>} - True if the request is successful.
     */
    setConsentString(consentString: string): Promise<boolean>;
    /**
     * Get consent string from the CDCS iframe
     * @returns {Promise<string | undefined>} - The consent string.
     */
    getConsentString(): Promise<string | undefined>;
    /**
     * Clears the local storage of the CDCS iframe
     * @returns {Promise<boolean>} - True if the request is successful.
     */
    clearStorage(): Promise<boolean>;
    /**
     * Creates the CDCS iframe
     * @returns {Promise<boolean>} - True if the request is successful.
     */
    init(): Promise<boolean>;
}
enum V2_LOCAL_STORAGE_KEY {
    CCPA = "uc_usprivacy",
    CCPA_DATA = "uc_ccpa",
    CONSENTS_BUFFER = "uc_consents_buffer",
    CONSENTS_V2_BUFFER = "uc_consents_v2_buffer",
    GCM_DATA = "uc_gcm",
    SERVICES = "uc_services",
    SETTINGS = "uc_settings",
    TCF = "uc_tcf",
    USER_INTERACTION = "uc_user_interaction",
    AB_TEST_VARIANT = "uc_ab_variant",
    UI_VERSION = "uc_ui_version"
}
const enum V1_CONSENT_ACTION {
    BY_SETTINGS_UPDATE = "bySettingsUpdate",
    ON_INITIAL_PAGE_LOAD = "onInitialPageLoad",
    ON_DENY_ALL_BTN_CLICK = "onDenyAllBtnClick",
    ON_ACCEPT_ALL_BTN_CLICK = "onAcceptAllBtnClick",
    ON_DENY_ALL_ANCHOR_CLICK = "onDenyAllAnchorClick",
    ON_TOGGLE_SELECT_ALL = "onToggleSelectAll",
    ON_TOGGLE_CATEGORY = "onToggleCategory",
    ON_TOGGLE_CONSENT = "onToggleConsent",
    ON_SPECIAL_FUNCTION_ACCEPT_ALL_CONSENT_TRIGGER = "onSpecialFunctionAcceptAllConsentTrigger",
    ON_COUNTDOWN_FINISHED = "onCountdownFinished",
    ON_WINDOW_FUNCTION_UPDATE_CONSENT = "onWindowFunctionUpdateConsent",
    ON_NON_EU_REGION = "onNonEURegion",
    ON_SAVE_BTN_CLICK = "onSaveBtnClick"
}
const enum V1_CONSENT_TYPE {
    EXPLICIT = "explicit",
    IMPLICIT = "implicit",
    UPDATE = "update"
}
interface V1LocalStorageSettings {
    ucConsents: {
        consents: V1LocalStorageService[];
    };
    usercentrics: {
        firstUserInteraction: {
            stateSaved: boolean;
        };
        settings: {
            language: string;
            settingsId: string;
            version: string;
        };
    };
}
interface V2LocalStorage {
    [V2_LOCAL_STORAGE_KEY.SETTINGS]: V2LocalStorageSettings;
    [V2_LOCAL_STORAGE_KEY.USER_INTERACTION]?: boolean;
}
interface V1LocalStorageService {
    consentStatus: boolean;
    controllerId: string;
    history: V1LocalStorageConsentHistory[];
    processorId: string;
    templateId: string;
}
interface V1LocalStorageConsentHistory {
    action: V1_CONSENT_ACTION;
    appVersion: string;
    consentStatus: boolean;
    consentTemplateVersion: string;
    language: string;
    settingsVersion: string;
    templateId: string;
    updatedAt: number;
    updatedBy: V1_CONSENT_TYPE;
}
interface V2LocalStorageData {
    settings: V2LocalStorageSettings;
    tcf?: V2LocalStorageTcf;
    ccpa?: V2LocalStorageCcpa;
    gcm?: V2LocalStorageGcm;
    abVariant?: string;
    userInteraction?: true;
}
interface V2LocalStorageTcf {
    tcString: string;
    timestamp: number;
    vendors: (number | number[])[][];
    vendorsDisclosed?: number[];
}
interface V2LocalStorageCcpa {
    timestamp: number;
    ccpaString: string;
}
interface V2LocalStorageGcm {
    analyticsStorage?: 'granted' | 'denied';
    adStorage?: 'granted' | 'denied';
    adsDataRedaction?: boolean;
}
interface V2LocalStorageSettings {
    controllerId: string;
    id: string;
    language: string;
    services: V2LocalStorageService[];
    version: string;
}
interface V2LocalStorageService {
    history: V2LocalStorageConsentHistory[];
    id: string;
    processorId: string;
    status: boolean;
}
interface V2LocalStorageConsentHistory extends V2LocalStorageConsent {
    language: string;
    timestamp: number;
    versions: {
        application: string;
        service: string;
        settings: string;
    };
}
interface V2LocalStorageConsent {
    action: V2_CONSENT_ACTION;
    status: boolean;
    type: V2_CONSENT_TYPE;
}
const enum V2_CONSENT_ACTION {
    ACCEPT_ALL_SERVICES = "onAcceptAllServices",
    DENY_ALL_SERVICES = "onDenyAllServices",
    ESSENTIAL_CHANGE = "onEssentialChange",
    INITIAL_PAGE_LOAD = "onInitialPageLoad",
    NON_EU_REGION = "onNonEURegion",
    SESSION_RESTORED = "onSessionRestored",
    TCF_STRING_CHANGE = "onTcfStringChange",
    UPDATE_SERVICES = "onUpdateServices",
    MOBILE_SESSION_RESTORED = "onMobileSessionRestore"
}
const enum V2_CONSENT_TYPE {
    EXPLICIT = "explicit",
    IMPLICIT = "implicit"
}
declare class LocalStorageService {
    constructor();
    setConsentString(consentString: string): void;
    getConsentString(): string | undefined;
    setUcData(ucData: StorageData): void;
    getUcData(): any;
    setGcmData(gcmData: StorageGcm): void;
    setConsentData(consentData: StorageConsent): void;
    setUiData(uiDataObject: UiData): void;
    getGcmData(): any;
    clearStorage(): void;
    clearUserSession(): void;
    getV1Settings(settingsId: string): V1LocalStorageSettings | undefined;
    setV2LocalStorageRestoredData(data: V2LocalStorageData): void;
    getV2Data(): V2LocalStorageData | undefined;
    setV2Data(data: V2LocalStorage): void;
}
interface ConsentServiceOptions {
    apiService: ApiService;
    crossDomainService?: CrossDomainService;
    localStorageService: LocalStorageService;
}
declare class ConsentService {
    constructor({ apiService, crossDomainService, localStorageService }: ConsentServiceOptions);
    /**
     * Save consents locally (local storage)
     * @param {ConsentData} consentData - The consent data.
     * @returns {Promise<void>}
     */
    saveConsentLocally(consentData: ConsentData, { services }: DpsData): Promise<void>;
    /**
     * Save consents remotely (api)
     * @param {ApiSaveConsentData} apiSaveConsentData - The consent data.
     * @returns {Promise<void>}
     */
    saveConsentRemotely(apiSaveConsentData: ApiSaveConsentData): Promise<void>;
    /**
     * Get consent data
     * @param {string} settingsId - Settings id.
     * @param {string | undefined} compressedConsentDataString - Consent data string.
     * @returns {Promise<ConsentData | undefined>} - The consent data.
     */
    getConsentData(settingsId: string, compressedConsentDataString?: string): Promise<ConsentData | undefined>;
    /**
     * Clear consents locally (local storage)
     * @returns {Promise<void>}
     */
    clearConsentsLocally(): Promise<void>;
    mapServicesData(services: DpsDataServices): Record<string, {
        name: string;
        consent: boolean;
    }>;
}
type RUNTIME_EVENTS = 'INIT_ACTION' | 'INIT_COMPLETE' | 'CMP_DATA_COMBINED' | 'LOCALSTORAGE_UPDATE' | 'SCRIPTS_UNBLOCKED';
type CONSENT_EVENTS = 'CONSENTS_APPLIED';
type DEBUG_EVENTS = 'WARN' | 'ERROR';
export type EVENTS = 'ALL' | DEBUG_EVENTS | RUNTIME_EVENTS | CONSENT_EVENTS;
type CallbackFunction = (eventName: string, eventData: unknown, timeElapsed: number) => void;
declare class WebSdkEvents {
    subscribe(name: EVENTS, callback: CallbackFunction): void;
    unsubscribe(name: EVENTS, callback: CallbackFunction): void;
    emit(name: EVENTS, data?: unknown): void;
}
export const webSdkEvents: WebSdkEvents;
declare class ScriptService {
    /**
     * Unblock scripts on the html document
     * @param {Record<string, ServiceData>} services - List of services with consent granted.
     * @returns {Promise<string[]>} - A list of all unblocked services.
     */
    unblockScripts(services: DpsData['services']): Promise<string[]>;
}
interface GppServiceInterface {
    setCmpSignalReady: () => Promise<void>;
    setCmpStatusLoaded: () => Promise<void>;
    setCmpDisplayHidden: () => Promise<void>;
    setCmpDisplayVisible: () => Promise<void>;
}
interface GppServiceAttrs {
    cmpId: number;
    cmpVersion: number;
}
type GppLegalFramework = 'tcfeuv2' | 'tcfcav1' | 'uspv1' | 'usnat' | 'usca' | 'usva' | 'usco' | 'usut' | 'usct';
declare class GppService implements GppServiceInterface {
    constructor({ cmpId, cmpVersion }: GppServiceAttrs);
    setApplicableSections: (legalFramework: GppLegalFramework) => void;
    applyApplicableSections(settingsType: SettingType, legislation?: Legislation): void;
    setCmpSignalReady: () => Promise<void>;
    setCmpStatusLoaded: () => Promise<void>;
    setCmpDisplayHidden: () => Promise<void>;
    setCmpDisplayVisible: () => Promise<void>;
    setSectionString: (sectionString: string, settingsType: SettingType, legislation?: Legislation) => Promise<void>;
    resetGpp(): void;
}
/**
 * 0 => none or privacy button
 * 1 => FirstLayer
 * 2 => SecondLayer
 * 3 => Embeddings
 */
type ConsentScreen = 0 | 1 | 2 | 3;
interface CmpServices {
    apiService: ApiService;
    consentService: ConsentService;
    localStorageService: LocalStorageService;
    crossDeviceService?: boolean;
    gppService?: GppService;
    analyticsService?: AnalyticsService;
}
export interface ConsentDetails {
    consent: ConsentData;
    services: _CmpData1['dps']['services'];
    categories: _CmpData1['dps']['categories'];
}
interface ACM {
    acString?: string;
    vendors?: ValidAcmVendor[];
}
type SdkErrorName = 'CMP_NOT_ALLOWED' | 'CMP_VERSION_MISMATCH';
interface SdkErrorData extends Error {
    name: SdkErrorName;
}
interface CmpNotAllowedErrorData extends SdkErrorData {
    data: {
        showNotAllowedInfo: boolean;
    };
}
declare class SdkError implements SdkErrorData {
    name: SdkErrorName;
    message: string;
    constructor(name: SdkErrorName, message?: string);
}
declare class CmpNotAllowedError extends SdkError implements CmpNotAllowedErrorData {
    data: CmpNotAllowedErrorData['data'];
    constructor(showNotAllowedInfo: boolean);
}
export const isCmpNotAllowedError: (data: unknown) => data is CmpNotAllowedError;
export { ConsentType, CmpTheme, EmbeddingsTheme, PrivacyButtonTheme, ThemeData, UiView, LayoutDirection, ScreenType };
export { ucEmbeddingsTheme, ucCmpTheme, ucPrivacyButtonTheme };
export type CategoryConsent = ServiceConsent;
export type ServicesConsents = ServiceConsent[];
export type CategoriesConsents = CategoryConsent[];
export type UspApiCallback = (data: unknown, success: boolean) => void;
export type UspApiCommand = 'getUSPData';
export type UspApiVersion = number;
export interface UcCmpGTMConfig {
    settingsId?: string;
    rulesetId?: string;
    language?: string;
    disableGcmDefaults?: boolean;
    advertiserConsentMode?: boolean;
}
export interface UserLocation {
    country: string;
    region?: string;
    city?: string;
}
export interface InitOptions {
    disableTracking?: boolean;
    draft?: true;
    euMode?: boolean;
    language?: string;
    location?: UserLocation;
    sandbox?: true;
    cacheVersion?: number;
    uiVersion?: string;
    uiTheme?: UiTheme;
    userSessionData?: UserSessionData;
}
export interface ServiceConsent {
    id: string;
    consent: boolean;
}
export interface TcfConsent {
    vendorId: string;
    legitimateInterestConsent: boolean;
    consent: boolean;
}
export interface UetConfig {
    disabled: boolean;
}
export interface UcCmpConfig {
    ui?: {
        suppress?: true;
    };
    proxy?: AnalyticsServiceDomains & ApiServiceDomains & CrossDomainServiceDomains;
    core?: SettingsCoreData;
    location?: Promise<UserLocation>;
    autoBlockerConfig?: AutoBlockerConfiguration;
    uetConfig?: UetConfig;
}
declare class ConsentModel implements ConsentData {
    version: ConsentData['version'];
    uiVersion: ConsentData['uiVersion'];
    _domains: ConsentData['_domains'];
    controllerId: ConsentData['controllerId'];
    language: ConsentData['language'];
    setting: ConsentData['setting'];
    updatedAt: ConsentData['updatedAt'];
    updatedBy: ConsentData['updatedBy'];
    createdAt: ConsentData['createdAt'];
    required: ConsentData['required'];
    status: ConsentData['status'];
    type: ConsentData['type'];
    hash: ConsentData['hash'];
    isBot: ConsentData['isBot'];
    constructor({ language, setting, updatedAt, updatedBy, createdAt, controllerId, version, uiVersion, required, status, type, hash, isBot, _domains, }: ConsentData, options?: {
        uiVersion?: string;
    });
    /**
     * Set setting's data
     * @param {SettingData} setting - New setting's data.
     * @returns {void}
     */
    setSetting(setting: ConsentData['setting']): void;
    getDomains(): string[];
    /**
     * Set language
     * @param {string} language - New language.
     * @returns {void}
     */
    setLanguage(language: ConsentData['language']): void;
    setUiVersion(uiVersion?: ConsentData['uiVersion']): void;
    /**
     * Set updatedAt
     * @param {number} number - New timestamp.
     * @returns {void}
     */
    setUpdatedAt(updatedAt: ConsentData['updatedAt']): void;
    /**
     * Set updatedBy
     * @param {ConsentActionType} updatedBy - New consent action.
     * @returns {void}
     */
    setUpdatedBy(updatedBy: ConsentData['updatedBy']): void;
    /**
     * Set hash
     * @param {string} hash - New hash string.
     * @returns {void}
     */
    setHash(hash: ConsentData['hash']): void;
    /**
     * Set required
     * @param {boolean} isRequired - Is consent required.
     * @returns {void}
     */
    setRequired(isRequired: ConsentData['required']): void;
    /**
     * Set status
     * @param {string} status - New consent status.
     * @returns {void}
     */
    setStatus(status: ConsentData['status']): void;
    /**
     * Set type
     * @param {ConsentType} type - New consent type.
     * @returns {void}
     */
    setType(type: ConsentData['type']): void;
}
declare class GdprConsentModel extends ConsentModel implements GdprConsentData {
    serviceIds?: string[];
    constructor(gdprConsentData: GdprConsentData, options?: {
        uiVersion?: string;
    });
    /**
     * Set list of services ids
     * @param {string[]} ids - Services ids list.
     * @returns {void}
     */
    setServiceIds(ids: string[]): void;
}
declare class UsConsentModel extends GdprConsentModel implements UsConsentData {
    ccpaString: UsConsentData['ccpaString'];
    gpcSignal?: UsConsentData['gpcSignal'];
    legislation: UsConsentData['legislation'];
    constructor(usConsentData: UsConsentData, options?: {
        initialView?: _UiView1;
        uiVersion?: string;
    });
    /**
     * Get US string
     * @returns {string} - The US consent string.
     */
    getCcpaString(): string;
    emitCcpaString(): void;
    setHasOptedOut(hasOptedOut: boolean): void;
    getHasOptedOut(): boolean;
    /**
     * Set that the user has been notified about the opportunity to opt out
     * @returns {void}
     */
    setHasBeenNotified(): void;
}
declare class I18nModel implements BaseI18nData {
    base: BaseI18nData['base'];
    categories: BaseI18nData['categories'];
    services: BaseI18nData['services'];
    firstLayer: BaseI18nData['firstLayer'];
    secondLayer: BaseI18nData['secondLayer'];
    constructor({ base, firstLayer, secondLayer, services, categories }: BaseI18nData);
    /**
     * Get i18n service data by id
     * @param {string} serviceId - Service id.
     * @returns {ServiceI18n} - The i18n service data
     */
    getService(serviceId: string): ServiceI18n;
    /**
     * Determines wether or not a service already has details available
     * @param {string} serviceId - Service id.
     * @returns {boolean} - True if service details are available.
     */
    getServiceHasDetails(serviceId: string): boolean;
}
declare class UsI18nModel extends I18nModel implements UsI18nData {
    ccpa: UsI18nData['ccpa'];
    constructor(ccpaI18nData: UsI18nData);
}
declare class DpsModel implements DpsData {
    services: DpsData['services'];
    categories: DpsData['categories'];
    granularConsentDisabled: DpsData['granularConsentDisabled'];
    updatedBy?: DpsData['updatedBy'];
    constructor({ services, categories, granularConsentDisabled }: DpsData);
    /**
     * Accept all services consents
     * @returns {void}
     */
    acceptAll(): void;
    /**
     * Deny all services consents
     * @returns {void}
     */
    denyAll(): void;
    /**
     * Accept a set of services consents
     * @param {ServicesConsents} consents - Set of services to be accepted.
     * @returns {void}
     */
    acceptSome(consents: ServicesConsents): void;
    /**
     * Deny a set of services consents
     * @param {ServicesConsents} consents - Set of services to be denied.
     * @returns {void}
     */
    denySome(consents: ServicesConsents): void;
    /**
     * Update a set of services consents
     * @param {ServicesConsents} consents - Set of services to be updated.
     * @returns {void}
     */
    updateSome(consents: ServicesConsents): void;
    /**
     * Update a set of categories' consents
     * @param {CategoriesConsents} categoriesConsents - Set of categories to be updated.
     * @returns {void}
     */
    updateCategoriesConsents(categoriesConsents: CategoriesConsents): void;
    /**
     * Get all accepted services
     * @param {string} key - Key that will identify each service on the final result.
     * @returns {Record<string, ServiceData>} - The set of accepted services.
     */
    getAcceptedServices(key?: 'id' | 'name'): DpsDataServices;
    /**
     * Get all services consent state
     * @param {string} key - Key that will identify each service on the final result.
     * @returns {Record<string, boolean>} - The set of services with the respective consent state.
     */
    getServicesConsents(key?: 'id' | 'name'): Record<string, boolean>;
    /**
     * Get all categories consent state
     * @returns {Record<string, CategoryData['state']>} - The set of categories with the respective consent state.
     */
    getCategoriesConsents(): Record<string, "ALL_DENIED" | "SOME_ACCEPTED" | "ALL_ACCEPTED">;
    /**
     * Get category consent state
     * @param {string} id - Category Id.
     * @returns {CategoryData['state']} - The consent state of the category.
     */
    getCategoryConsent(id: string): "ALL_DENIED" | "SOME_ACCEPTED" | "ALL_ACCEPTED" | undefined;
    /**
     * Get category id from service id
     * @param {string} serviceId - Service Id.
     * @returns {string} - The category Id.
     */
    getCategoryIdFromServiceId(serviceId: string): string;
    /**
     * Get global consent status (based on all services)
     * @returns {ConsentData['status']} - The global consent status.
     */
    getConsentStatus(): ConsentData['status'];
    /**
     * Get the list of services ids which belong to the some_accepted or some_denied cases
     * @returns {string[]} - The list of services ids.
     */
    getConsentServiceIds(): string[];
    /**
     * Get service data by id
     * @param {string} serviceId - Service id.
     * @returns {ServiceData | undefined} - The service data.
     */
    getService(serviceId: string): ServiceData | undefined;
}
declare class GoogleConsentModeModel implements GoogleConsentModeData {
    developerId: GoogleConsentModeData['developerId'];
    constructor(gcmData: GoogleConsentModeData, localStorageService: LocalStorageService, customEventService: CustomEventService);
    /**
     * Apply GCM data
     * @param {Record<string, ServiceData>} services - Services list.
     * @param {ConsentType} consentType - Type of given consent.
     * @returns {void}
     */
    apply(services: DpsData['services'], consentType: _ConsentType1): void;
}
declare class LanguagesModel implements LanguagesData {
    languages: LanguagesData['languages'];
    constructor({ languages }: LanguagesData);
    /**
     * Determines wether or not a language is available
     * @param {string} language - Language code.
     * @returns {boolean} - True if language is available.
     */
    getHasLanguage(language: string): boolean;
    /**
     * Get the language direction (ltr or rtl)
     * @param {string} language - Language code.
     * @returns {string} - The language direction.
     */
    getLanguageScreenDirection(language: string): "ltr" | "rtl";
}
declare class SettingModel implements SettingData {
    type: SettingData['type'];
    id: SettingData['id'];
    version: SettingData['version'];
    abVariant?: SettingData['abVariant'];
    constructor({ type, id, version, abVariant }: SettingData);
    /**
     * Get the settings type (GDPR | TCF | US)
     * @returns {SettingType} - The settings type.
     */
    getType(): SettingType;
    /**
     * Get the settings id
     * @returns {string} - The settings id.
     */
    getId(): string;
    /**
     * Get the settings version
     * @returns {string} - The settings version.
     */
    getVersion(): string;
}
declare class TemplateModel implements TemplateData {
    id: TemplateData['id'];
    style: TemplateData['style'];
    html: TemplateData['html'];
    constructor({ id, style, html }: TemplateData);
}
export class ThemeModel implements _ThemeData1 {
    custom: _ThemeData1['custom'];
    breakPoints: NonNullable<_ThemeData1['breakPoints']>;
    cmp: _ThemeData1['cmp'];
    privacyButton: _ThemeData1['privacyButton'];
    embeddings: _ThemeData1['embeddings'];
    constructor(themeData: _ThemeData1);
    /**
     * Get screen type
     * @returns {ScreenType} - The screen type ("desktop" | "tablet" | "mobile" | "xs")
     */
    getScreenType: () => _ScreenType1;
    getCmpTheme: (layer: "base" | "first" | "second", options?: {
        custom?: CustomCmpTheme;
        screenType?: _ScreenType1;
        direction?: _LayoutDirection1;
    }) => _CmpTheme1;
    /**
     * Get the theme for the privacy button view
     * @returns {PrivacyButtonTheme} - The privacy button theme.
     */
    getPrivacyButtonTheme(options?: {
        custom?: CustomPrivacyButtonTheme;
        direction?: _LayoutDirection1;
        screenType?: _ScreenType1;
    }): _PrivacyButtonTheme1;
    getEmbeddingsTheme(options?: {
        custom?: CustomEmbeddingsTheme;
        direction?: _LayoutDirection1;
        screenType?: _ScreenType1;
    }): _EmbeddingsTheme1;
    getThemeDefaults(): {
        privacyButton: UcPrivacyButtonTheme;
        cmp: UcCmpTheme;
        embeddings: UcEmbeddingsTheme;
    };
}
declare class UiModel implements _UiData1 {
    initialView: _UiData1['initialView'];
    theme: Required<_UiData1['theme']>;
    closedView: _UiData1['closedView'];
    language: _UiData1['language'];
    gpcSignalHonored: _UiData1['gpcSignalHonored'];
    dpsDisplayFormat: 'ALL' | 'SHORT';
    isCmpPreviewPage: boolean;
    constructor({ initialView, closedView, theme, language, gpcSignalHonored, dpsDisplayFormat }: _UiData1);
    /**
     * Get the ui chosen language
     * @returns {string} - The ui language.
     */
    getLanguage(): string;
    /**
     * Set the ui language
     * @param {string} language - Chosen language.
     * @returns {void}
     */
    setLanguage(language: string): void;
    /**
     * Get the ui initial view
     * @returns {UiView | undefined} - The initial UI view.
     */
    getInitialView(): _UiView1 | undefined;
    /**
     * Determine which view should be shown upon closing the CMP (none | button)
     * @returns {string} - The UI view to be shown after closing CMP.
     */
    getClosedView(): "none" | "button";
}
declare class GdprI18nModel extends I18nModel implements GdprI18nData {
    gdpr: GdprI18nData['gdpr'];
    constructor(gdprI18nData: GdprI18nData);
}
declare class TcfI18nModel extends I18nModel implements TcfI18nData {
    tcf: TcfI18nData['tcf'];
    constructor(tcfI18nData: TcfI18nData);
}
declare class TcfConsentModel extends GdprConsentModel implements TcfConsentData {
    tcString: TcfConsentData['tcString'];
    vendorsList: TcfConsentData['vendorsList'];
    acString: TcfConsentData['acString'];
    constructor(tcfConsentData: TcfConsentData, options?: {
        uiVersion?: string;
        acString?: TcfConsentData['acString'];
    });
    /**
     * Set TCF consent string
     * @param {string} tcString - New TCF consentlanguage.
     * @returns {void}
     */
    setTcString(tcString: string): void;
    /**
     * Set Google Additional Consent Mode string
     * @param {string} acString - New AC string.
     * @returns {void}
     */
    setAcString(acString: string): void;
}
declare class IntegrationsModel implements IntegrationsData {
    scripts: IntegrationsData['scripts'];
    constructor({ scripts }: IntegrationsData);
    getScripts(): IntegrationScript[];
}
export type TcfVendor = Vendor & TcfVendorInfo & {
    consent: boolean;
    legitimateInterestConsent: boolean;
};
export interface IabRestrictionsData {
    purposes: number[];
    legIntPurposes: number[];
    notAllowedPurposes: number[];
}
export type IabStacksData = number[];
export interface TcfLegalInfo {
    id: number;
    name: string;
    description: string;
    descriptionLegal?: string;
    illustrations?: string[];
}
export interface TcfPurposeConsentInfo extends TcfLegalInfo {
    numberOfVendors: number;
    isPartOfStack: boolean;
    consent: {
        visible: boolean;
        given: boolean;
    };
    legitimateInterestConsent: {
        visible: boolean;
        given: boolean;
    };
}
export interface TcfSpecialFeatureConsentInfo extends TcfConsentInfo {
    isPartOfStack: boolean;
}
export interface TcfConsentInfo extends TcfLegalInfo {
    consent: boolean;
}
export interface TcfStack {
    description: string;
    name: string;
    id: number;
    purposes: number[];
    specialFeatures: number[];
    state: 'ALL_DENIED' | 'SOME_ACCEPTED' | 'ALL_ACCEPTED';
}
export type TcfFeature = TcfLegalInfo;
export type TcfSpecialFeature = TcfSpecialFeatureConsentInfo;
export type TcfPurpose = TcfPurposeConsentInfo;
export type TcfSpecialPurpose = TcfConsentInfo;
export type TcfRestrictionsData = IabRestrictionsData;
export type TcfDataCategory = {
    name: string;
    description: string;
};
export type TcfVendors = Record<number, TcfVendor>;
export type TcfPurposesData = Record<number, TcfPurpose>;
export type TcfSpecialPurposesData = Record<number, TcfSpecialPurpose>;
export type TcfFeaturesData = Record<number, TcfFeature>;
export type TcfSpecialFeaturesData = Record<number, TcfSpecialFeature>;
export type TcfStacksData = Record<number, TcfStack>;
export type TcfDataCategories = Record<string, TcfDataCategory>;
export interface TcfData {
    tcString?: string;
    purposes: TcfPurposesData;
    specialPurposes: TcfSpecialPurposesData;
    features: TcfFeaturesData;
    specialFeatures: TcfSpecialFeaturesData;
    stacks: TcfStacksData;
    dataCategories?: TcfDataCategories;
    vendors: TcfVendors;
}
export interface TcfVendorDetails {
    genericContent: {
        id: string;
        description?: string;
        body?: {
            parentId?: string;
            title?: string;
            type: 'list' | 'tag' | 'text' | 'link';
            value: string | {
                parentId?: string;
                id: string;
                label: string;
            }[];
        };
    }[];
    storedInfoContent?: {
        id: string;
        title: string;
        description?: string;
        disclosures?: StoredInfoItem[];
        domains?: StoredInfoItem[];
        url?: string;
    };
    vendorsListContent?: {
        id: string;
        body: {
            title: string;
            value: {
                id: number;
                label: string;
            }[];
        };
    };
}
export interface TcfConsentParams {
    id: number;
    consent?: boolean;
    legitimateInterestConsent?: boolean;
}
declare class TcfModel implements TcfData {
    vendors: TcfData['vendors'];
    purposes: TcfData['purposes'];
    specialPurposes: TcfData['specialPurposes'];
    features: TcfData['features'];
    specialFeatures: TcfData['specialFeatures'];
    stacks: TcfData['stacks'];
    dataCategories?: TcfData['dataCategories'];
    tcString?: TcfData['tcString'];
    updatedBy?: ConsentActionType;
    acm?: ACM;
    constructor(iabData: IabData, tcString: string, options?: {
        acm?: ACM;
        gcmEnabled?: boolean;
        advertiserConsentModeEnabled?: boolean;
    });
    getPolicyVersion(): number;
    /**
     * Map IAB and GVL data
     * @param {IabData} iabData - IAB data.
     * @returns {void}
     */
    mapIabData(iabData: IabData): void;
    /**
     * Get the timestamp of the latest tcString update
     * @returns {Date} - The timestamp of the latest tcString update
     */
    getTcStringLastUpdate(): Date;
    /**
     * Get TCF consent string
     * @param {EncodingOptions | undefined} encodingOptions - Encoding options.
     * @returns {string} - The TCF consent string.
     */
    getTcString(encodingOptions?: EncodingOptions): string;
    /**
     * Get Disclosed Vendors Segment TCF string
     * @returns {string} - The TCF consent string sgmented by disclosed vendors.
     */
    getDisclosedVendorsSegmentString(): string;
    /**
     * Determine wether or not a purpose belongs to any stack
     * @param {number} id - Purpose id.
     * @returns {boolean} - True if the purpose id is present on some stack.
     */
    getPurposeIsPartOfStack(id: number): boolean;
    /**
     * Determine wether or not a special feature belongs to any stack
     * @param {number} id - Special feature id.
     * @returns {boolean} - True if the special feature id is present on some stack.
     */
    getSpecialFeatureIsPartOfStack(id: number): boolean;
    /**
     * Get the consent state of a specific stack
     * @param {number} id - Stack id.
     * @returns {string} - The stack consent state ("ALL_DENIED" | "ALL_ACCEPTED" | "SOME_ACCEPTED").
     */
    getStackState(id: number): "ALL_DENIED" | "SOME_ACCEPTED" | "ALL_ACCEPTED";
    /**
     * Set the consent state of a specific stack
     * @param {number} id - Stack id.
     * @param {boolean} consent - Stack consent state.
     * @returns {void}
     */
    setStackConsent(id: number, consent: boolean): void;
    /**
     * Get the consent state of a specific vendor
     * @param {number} id - Vendor id.
     * @returns {booelan} - The vendor consent state.
     */
    getVendorConsent(id: number): boolean;
    /**
     * Get the legitimate interest consent state of a specific vendor
     * @param {number} id - Vendor id.
     * @returns {booelan} - The vendor legitimate interest consent state.
     */
    getVendorLegitimateInterestConsent(id: number): boolean;
    /**
     * Get the consent state of a specific purpose
     * @param {number} id - Purpose id.
     * @returns {booelan} - The purpose consent state.
     */
    getPurposeConsent(id: number): boolean;
    /**
     * Get the legitimate interest consent state of a specific purpose
     * @param {number} id - Purpose id.
     * @returns {booelan} - The purpose legitimate interest consent state.
     */
    getPurposeLegitimateInterestConsent(id: number): boolean;
    /**
     * Get the consent state of a specific special feature
     * @param {number} id - Special feature id.
     * @returns {booelan} - The special feature consent state.
     */
    getSpecialFeatureConsent(id: number): boolean;
    /**
     * Set the consent state of a specific purpose
     * @param {number} id - Purpose id.
     * @param {boolean} consent - Consent state.
     * @returns {void}
     */
    setPurposeConsent(id: number, consent: boolean): void;
    /**
     * Set the legitimate interest consent state of a specific purpose
     * @param {number} id - Purpose id.
     * @param {boolean} consent - Legitimate interest consent state.
     * @returns {void}
     * @description It will not set the legitimate interest consent if legitimateInterestDisabled is true or legitimate interest is not visible for the purpose.
     */
    setPurposeLegitimateInterestConsent(id: number, consent: boolean): void;
    /**
     * Set the consent state and legitimate interest consent of multiple purposes
     * @param {{id: number, consent?: boolean, legitimateInterestConsent?: boolean }[]} purposes array of purpose id and consent state
     * @returns {void}
     * @description It will not set the legitimate interest consent if legitimateInterestDisabled is true or legitimate interest is not visible for the purpose.
     */
    setPurposesConsent(purposes: {
        id: number;
        consent?: boolean;
        legitimateInterestConsent?: boolean;
    }[]): void;
    /**
     * Set the consent state of multiple special features
     * @param {{id: number, consent: boolean }[]} features array of special feature id and consent state
     * @returns {void}
     */
    setSpecialFeaturesConsent(features: {
        id: number;
        consent: boolean;
    }[]): void;
    /**
     * Set the consent state of a specific special feature
     * @param {number} id - Special Feature id.
     * @param {boolean} consent - Consent state.
     * @returns {void}
     */
    setSpecialFeatureConsent(id: number, consent: boolean): void;
    /**
     * Set the consent state of a specific vendor
     * @param {number} id - Vendor id.
     * @param {boolean} consent - Consent state.
     * @returns {void}
     */
    setVendorConsent(id: number, consent: boolean): void;
    /**
     * Set the consent state and legitimate interest consent of multiple vendors
     * @param {{id: number, consent?: boolean, legitimateInterestConsent?: boolean }[]} vendors array of vendor id and consent state
     * @returns {void}
     * @description It will not set the legitimate interest consent if legitimateInterestDisabled is true or vendor does not have any legitimate purpose.
     */
    setVendorsConsent(vendors: TcfConsentParams[]): void;
    /**
     * Set the legitimate interest consent state of a specific vendor
     * @param {number} id - Vendor id.
     * @param {boolean} consent - Legitimate interest consent state.
     * @returns {void}
     * @description It will not set the legitimate interest consent if legitimateInterestDisabled is true or vendor does not have any legitimate purpose.
     */
    setVendorLegitimateInterestConsent(id: number, consent: boolean): void;
    setAcmVendorConsent(id: number, consent: boolean): void;
    updateAcmVendorsPurposes(purposes: string[]): void;
    updateAcmVendorsConsent(consent: boolean): void;
    /**
     * Accept all vendors and purposes consents
     * @returns {void}
     */
    acceptAll(): void;
    /**
     * Deny all vendors and purposes consents
     * @returns {void}
     */
    denyAll(): void;
    /**
     * Update TcModel consent screen
     * @returns {void}
     */
    updateConsentScreen(screen: ConsentScreen): void;
    /**
     * Update TcModel consent language
     * @returns {void}
     */
    updateConsentLanguage(language: string): void;
    /**
     * Update TcModel timestamp
     * @returns {void}
     */
    refreshTimestamp(): void;
    /**
     * Update the TCF string remotely
     * @returns {void}
     */
    emitTcString(): void;
    /**
     * Change the TcModel language
     * @param {string} language - New chosen language.
     * @param {IabData} iabData - IAB data to be mapped with the new GVL object.
     * @returns {void}
     */
    changeLanguage(language: string, iabData: IabData): Promise<TCModel>;
    /**
     * Determine wether or not are all consents accepted
     * @returns {boolean} - True if all vendors and purposes consents are accepted.
     */
    areAllConsentsAccepted(): boolean;
    /**
     * Determine wether or not are all consents denied
     * @returns {boolean} - True if all vendors and purposes consents are denied.
     */
    areAllConsentsDenied(): boolean;
    getACString(): string;
    setAddtlConsent(value: string): void;
    setUIOpen(): void;
    setUIClosed(): void;
}
declare class UetModel {
    constructor(customEventService: CustomEventService);
    apply(services: DpsData['services'], consentType: _ConsentType1): void;
}
declare class _CmpController1 {
    protected apiService: ApiService;
    protected gppService?: GppService;
    protected consentService: ConsentService;
    protected scriptService: ScriptService;
    protected customEventService: CustomEventService;
    protected localStorageService: LocalStorageService;
    protected crossDeviceService?: boolean;
    protected analyticsService?: AnalyticsService;
    protected dataLayerService?: DataLayerService;
    protected coreData?: SettingsCoreData;
    languages: LanguagesModel;
    ui: UiModel;
    dps: DpsModel;
    gcm?: GoogleConsentModeModel;
    uet?: UetModel;
    setting: SettingModel;
    consent?: GdprConsentModel | UsConsentModel | TcfConsentModel;
    i18n?: GdprI18nModel | UsI18nModel | TcfI18nModel;
    integrations?: IntegrationsModel;
    tcf?: TcfModel;
    template?: TemplateModel;
    theme: ThemeModel;
    constructor(cmpData: _CmpData1, { apiService, consentService, localStorageService, analyticsService, crossDeviceService, gppService }: CmpServices, options?: {
        consentData?: ConsentData;
        uiVersion?: string;
        settingsCoreData?: SettingsCoreData;
    });
    /**
     * Get the consent details
     * @returns {Promise<ConsentDetails | undefined>} - The consent data used inside our UCstring.
     */
    getConsentDetails(): Promise<ConsentDetails | undefined>;
    /**
     * Fetch the translated data from the API and created the respective variant i18n models
     * @returns {Promise<void>}
     */
    initI18nData(): Promise<void>;
    /**
     * Clears the Local Storage including Cross Domain
     * @returns {Promise<void>}
     */
    clearStorage(): Promise<void>;
    /**
     * Unblock the scripts which need consent to be run
     * @returns {Promise<string[]>} - A list with the services names which were unblocked.
     */
    unblockScriptsWithConsent(): Promise<string[]>;
    /**
     * Get the Controller Id
     * @returns {string | undefined} - The controller id value.
     */
    getControllerId(): string | undefined;
    /**
     * Get the current selected language
     * @returns {string} the selected language
     */
    getLanguage(): string;
    /**
     * Get consent required
     * @returns {boolean | undefined} - True if consent is required from user.
     */
    getIsConsentRequired(): boolean | undefined;
    /**
     * Sets the CMP language to the new given language
     * @param {string} language - New language
     * @returns {Promise<void>}
     */
    changeLanguage(language: string): Promise<void>;
    /**
     * Will set the analytics pixel via network call and will fire the custom events defined on the AI
     * @param {CMP_EVENT_TYPE} cmpEventType - The type of event which trigered the analytics call.
     * @param {CmpEventSource} source - The source from where the event was fired originally.
     * @returns {void}
     */
    setAnalyticsPixel(cmpEventType: CMP_EVENT_TYPE, source?: CmpEventSource): void;
    /**
     * Will dispatch an event (UC_UI_VIEW_CHANGED) signaling that the view has changed
     * @param {UiView | undefined} previousView - The previous view that was displayed.
     * @param {UiView} view - The current view being displayed.
     * @returns {void}
     */
    dispatchViewChanged(previousView: _UiView1 | undefined, view: _UiView1): void;
    /**
     * Accepts all consents inside the CMP
     * @returns {Promise<void>}
     */
    acceptAllConsents(): Promise<void>;
    /**
     * Denys all consents inside the CMP
     * @returns {Promise<void>}
     */
    denyAllConsents(): Promise<void>;
    /**
     * Updates a list of consents with the respective state
     * @param {ServicesConsents} consents - List of (serviceId, consentState) pair.
     * @returns {Promise<void>}
     */
    updateServicesConsents(consents: ServicesConsents): Promise<void>;
    /**
     * Updates a specific consent with the respective state
     * @param {ServiceConsent} consent - The service to be updated (serviceId, consentState) pair.
     * @returns {Promise<void>}
     */
    updateServiceConsent(consent: ServiceConsent): Promise<void>;
    /**
     * Updates a list of categories with the respective state
     * @param {CategoriesConsents} categoriesConsents - List of (categoryId, consentState) pair.
     * @returns {Promise<void>}
     */
    updateCategoriesConsents(categoriesConsents: CategoriesConsents): Promise<void>;
    /**
     * Updates a specific category with the respective state
     * @param {CategoriesConsents} categoriesConsents - The category to be updated (categoryId, consentState) pair.
     * @returns {Promise<void>}
     */
    updateCategoryConsent(categoryConsent: CategoryConsent): Promise<void>;
    /**
     * Save the consents
     * @param {ConsentType} consentType - Type of consent (Implicit/Explicit).
     * @param {boolean | undefined} fromEmbeddings - Wether or not the save was called from the embeddings view.
     * @returns {Promise<void>}
     */
    saveConsents(consentType?: _ConsentType1, fromEmbeddings?: boolean): Promise<void>;
    /**
     * Save the consents remotely on API
     * @returns {Promise<void>}
     */
    saveConsentRemotely(): Promise<void>;
    /**
     * Check if all consents are granted
     * @returns {boolean} - True if all consents accepted.
     */
    areAllConsentsAccepted(): boolean;
    /**
     * Check if all consents are denied
     * @returns {boolean} - True if all consents denied.
     */
    areAllConsentsDenied(): boolean;
    /**
     * Gets the detailed information of a service
     * @param {string} serviceId - Service id.
     * @param {boolean} includeDetails - Determine wether service details should be included on the result or not.
     * @returns {Promise<{service: ServiceData; i18n: ServiceI18n;} | undefined>} - The service detailed information.
     */
    getServiceInfo(serviceId: string, includeDetails?: boolean): Promise<{
        service: ServiceData;
        i18n: ServiceI18n;
    } | undefined>;
    /**
     * Get Stored Information via URL
     * @param {string} url - URL for Stored Info.
     * @returns {Promise<{disclosures?: StoredInfoItem[] | undefined; domains?: StoredInfoItem[] | undefined;}>} - The service's stored information.
     */
    getStoredInfoByUrl(url: string): Promise<{
        disclosures?: StoredInfoItem[];
        domains?: StoredInfoItem[];
    }>;
    /**
     * Save consents locally and remotely
     * @param {string} consentHash - Consent hash string.
     * @returns {Promise<void>}
     */
    applyConsents(consentHash?: string, fromEmbeddings?: boolean): Promise<void>;
    getPrivacyButtonTheme(custom?: CustomPrivacyButtonTheme): _PrivacyButtonTheme1;
    getEmbeddingTheme(custom?: CustomEmbeddingsTheme): _EmbeddingsTheme1;
    getCmpTheme(layer: 'first' | 'second', custom?: CustomCmpTheme): _CmpTheme1;
    getThemeDefaults(): void;
    /**
     * Update theme model
     * @param {ThemeData} themeData - Theme model data.
     * @returns {void}
     */
    updateTheme(themeData: _ThemeData1): void;
    /**
     * Get the CMP config
     * @return Promise<Record<string, object>>
     */
    getCmpConfig(): Promise<{
        i18n: {
            poweredBy?: {
                isEnabled: boolean;
                labels: {
                    prefix: string;
                    uc: string;
                    partner: string;
                };
                links: {
                    uc: string;
                    partner: string;
                };
            } | undefined;
        };
    }>;
    /**
     * Get the services
     * @return Promise<[serviceId: string, data: ServiceData][]>
     */
    getServices(): Promise<[string, ServiceData][]>;
    /**
     * Get the categories
     * @return Promise<[categoryId: string, data: CategoryData][]>
     */
    getCategories(): Promise<[string, CategoryData][]>;
    /**
     * Get the categories
     * @return Promise<[language: string, data: LanguageData][]>
     */
    getLanguages(): Promise<[string, Language][]>;
}
declare class _UsCmpController1 extends _CmpController1 {
    consent: UsConsentModel;
    i18n: UsI18nModel;
    isOptedOut(): boolean;
    constructor(ccpaCmpData: _UsCmpData1, services: CmpServices, options?: {
        consentData?: UsConsentData;
        uiVersion?: string;
    });
}
declare class _GdprCmpController1 extends _CmpController1 {
    consent: GdprConsentModel;
    i18n: GdprI18nModel;
    constructor(gdprCmpData: _GdprCmpData1, services: CmpServices, options?: {
        consentData?: GdprConsentData;
        uiVersion?: string;
        settingsCoreData?: SettingsCoreData;
    });
}
declare class _TcfCmpController1 extends _CmpController1 {
    consent: TcfConsentModel;
    tcf: TcfModel;
    i18n: TcfI18nModel;
    constructor(tcfCmpData: _TcfCmpData1, services: CmpServices, options?: {
        consentData?: TcfConsentData;
        uiVersion?: string;
        settingsCoreData?: SettingsCoreData;
    });
    /**
     * Check if all consents (IAB and Non-IAB) are granted
     * @returns {boolean} - True if all consents accepted.
     */
    areAllConsentsAccepted(): boolean;
    /**
     * Check if all consents (IAB and Non-IAB) are denied
     * @returns {boolean} - True if all consents denied.
     */
    areAllConsentsDenied(): boolean;
    /**
     * Sets the CMP and TcModel language to the new given language
     * @param {string} language - New language
     * @returns {Promise<void>}
     */
    changeLanguage(language: string): Promise<void>;
    /**
     * Get the detailed data for a specific feature or purpose
     * @param {number} id - Feature or Purpose id.
     * @param {string} type - feature or purpose.
     * @returns {TcfVendorDetails | null} - The purpose/feature detailed data.
     */
    getPurposeFeatureDetails(id: number, type: 'purpose' | 'feature'): TcfVendorDetails | null;
    /**
     * Get the detailed data for a specific vendor or for every vendor
     * @param {number | undefined} vendorId - Vendor id.
     * @returns {Record<number, TcfVendorDetails>} - The vendor(s) detailed data.
     */
    getVendorsDetails(vendorId?: number): Record<number, TcfVendorDetails>;
    /**
     * Get the stored information data for a specific vendor
     * @param {number} vendorId - Vendor id.
     * @returns {Promise<DeviceStorage | null> | undefined} - The vendor stored information data.
     */
    getVendorStoredInformation(vendorId: number): Promise<DeviceStorage | null> | undefined;
    mapAcmVendorContent(vendor: ValidAcmVendor): TcfVendorDetails | null;
    updateTcfConsents(): void;
}
export type UsCmpController = _UsCmpController1;
export type GdprCmpController = _GdprCmpController1;
export type TcfCmpController = _TcfCmpController1;
export type CmpController = GdprCmpController | TcfCmpController | UsCmpController;
export { CmpData, GdprCmpData, UsCmpData, TcfCmpData };
export const isTcfCmpController: (controller: CmpController) => controller is _TcfCmpController1;
export const isGdprCmpController: (controller: CmpController) => controller is _GdprCmpController1;
export const isUsCmpController: (controller: CmpController) => controller is _UsCmpController1;
declare const getCmpController: (cmpData: _CmpData1, services: CmpServices, options?: {
    consentData?: ConsentData;
    uiVersion?: string;
    settingsCoreData?: SettingsCoreData;
}) => Promise<_UsCmpController2 | _GdprCmpController2 | _TcfCmpController2>;
/**
 * [[include:WebSdk.md]]
 */
declare class WebSdk {
    protected getCmpController?: typeof getCmpController;
    constructor(options?: InitOptions);
    /**
     * Init SDK via Ruleset
     * @param {string} ruleSetId - Ruleset id.
     * @param {string} controllerId - Controller id.
     * @returns {Promise<CmpController>} - The CmpController.
     */
    initByRuleSet(ruleSetId: string, controllerId?: string): Promise<CmpController>;
    /**
     * Init SDK via Setting
     * @param {string} settingsId - Settings id.
     * @param {string} controllerId - Controller id.
     * @returns {Promise<CmpController>} - The CmpController.
     */
    initBySetting(settingsId: string, controllerId?: string): Promise<CmpController>;
    /**
     * Init SDK via CoreData
     * @param {SettingsCoreData} settingsCoreData - Settings core data.
     * @param {string} controllerId - Controller id.
     * @returns {Promise<CmpController>} - The CmpController.
     */
    initByCoreData(settingsCoreData: SettingsCoreData, controllerId?: string): Promise<CmpController>;
}
export class UsWebSdk extends WebSdk {
    constructor(options?: InitOptions);
}
export class GdprWebSdk extends WebSdk {
    constructor(options?: InitOptions);
}
export class TcfWebSdk extends WebSdk {
    constructor(options?: InitOptions);
}
export default WebSdk;
