import { IFRAME_METHODS } from './enums';
import { StorageTCF as CrossDomainTcfData, StorageCcpa, StorageSettings } from '../Storage/interfaces';
import { IFrameOptions } from './interfaces';
import { UcDomains } from '../../interfaces';
import { UserSessionData } from '../DataFacade/interfaces';
export default class CrossDomainService {
    static crossDomainId: string;
    static cookieBridgeDomain: string;
    static domainBridgeUri: string;
    static useEuCdn: boolean;
    static cookieBridgeAvailable: boolean;
    static crossDomainAvailable: boolean;
    private constructor();
    static setDomainBridgeUri(domains?: UcDomains | null): void;
    /**
     * Get the cross domain bridge URI
     *
     * @private
     */
    static getDomainBridgeUri(): string;
    static init(options?: IFrameOptions, domains?: UcDomains | null): Promise<boolean>;
    static initIFrame(domain: string, id: string): Promise<boolean>;
    static setIsCrossDomainAvailable(value: boolean): void;
    static isCookieBridgeAvailable(): boolean;
    static setIsCookieBridgeAvailable(value: boolean): void;
    static isCrossDomainAvailable(): boolean;
    static getCrossDomainId(): string;
    static setCrossDomainId(settingsId: string): void;
    static setCookieBridgeDomain(subDomain: string, scriptPath: string): void;
    static setUseEuCdn(activate: boolean): void;
    static createIFrame(domain: string, id: string): HTMLIFrameElement;
    static removeIFrame(id: string): void;
    static queryIFrame<T>(domain: string, id: string, method: IFRAME_METHODS, payload?: unknown, crossDomainId?: string): Promise<T>;
    static appendIFrame(iFrame: HTMLIFrameElement): null | Error;
    static query<T, DATA>(method: IFRAME_METHODS, data?: DATA): Promise<T>;
    static getCrossDomainLanguage(): Promise<string>;
    static setCrossDomainData(data: StorageSettings): Promise<void>;
    static setCrossDomainCcpaData(data: StorageCcpa): Promise<void>;
    static getCrossDomainCcpaData(): Promise<StorageCcpa>;
    static getCrossDomainSessionData(): Promise<UserSessionData>;
    static getCrossDomainTcfData(): Promise<CrossDomainTcfData>;
    static setCrossDomainTcfData(data: CrossDomainTcfData): Promise<void>;
    /**
     * Helper method to clear the local storage on the iFrame domains
     */
    static clearCrossDomainStorage(): Promise<void>;
}
