import { ACMVendor, TCFData, TCFUserDecisions } from '../interfaces/TCF';
import { AcmData, TcfData as TcfSettingsData } from './interfaces';
import { CoreTcf, DpsJsonResponse, LegacySettings, LegacyTCF2 } from '../../Api/interfaces';
import { DataTransferSettings } from '../../../modules/helpers';
import { EncodingOptions, TCModel } from '../../../../libs/@iabtcf/core';
import { ResurfaceOptions, TCFChangedPurposes } from '../interfaces';
import { TCF_DECISION_UI_LAYER } from '../enums/TCF';
import DefaultData from './DefaultData';
declare class Tcf extends DefaultData implements TcfSettingsData {
    acmData: AcmData;
    advertiserConsentModeEnabled?: boolean;
    gcmEnabled: boolean;
    changedPurposes: TCFChangedPurposes;
    cmpId: number;
    cmpVersion: number;
    consensuScriptPath: string;
    consensuSubdomain: string;
    disabledSpecialFeatures: number[];
    gdprApplies: boolean;
    hideLegitimateInterestToggles: boolean;
    isAnalyticsEnabled: boolean;
    isApiV2Enabled: boolean;
    isConsentXDeviceEnabled: boolean;
    publisherCountryCode: string;
    purposeOneTreatment: boolean;
    resurfaceOptions: ResurfaceOptions;
    stackIds: number[];
    tcfv2HistoryDisabled: boolean;
    useGranularChoice: boolean;
    vendorIds: number[];
    vendorIdsOutsideEUList: number[];
    dataRetentionLabel?: string;
    updateControllerId(value: string): void;
    private policyVersion;
    private dataTransferSettings;
    private locationInstance;
    private botInstance;
    private previousStorage;
    private selectedVendorsIncludeNonDisclosed;
    private cmpApi;
    private tcModel;
    private tcfData;
    private vendors;
    private selectedLanguage;
    private excludeAcceptAllVendors;
    private enableDeprecatedV1ConsentSaving?;
    acceptAllDisclosed(fromLayer: TCF_DECISION_UI_LAYER): Promise<void>;
    areAllPurposesAccepted(): boolean;
    areAllVendorsAccepted(): boolean;
    changeLanguage(language: string, newTcfSettings?: LegacyTCF2): Promise<void>;
    denyAllDisclosed(fromLayer: TCF_DECISION_UI_LAYER): Promise<void>;
    getSelectedVendorsIncludeNonDisclosed(): boolean;
    getTcModel(): TCModel | null;
    getTCFData(): TCFData;
    /**
     * If GDPR applies is false, then GDPR applies is set to true in TC String.
     * If GDPR applies is true and user is inside EU, set it to true in TC String.
     * If GDPR applies is true and user is outside EU, set it to false in TC String.
     * (refs EUD-487)
     * */
    getGdprApplies(): Promise<boolean>;
    getACString(): string;
    getTCString(encodingOptions?: EncodingOptions): string;
    getTCFDisclosedVendorsSegmentString(): string;
    init(isEuMode: boolean): Promise<void>;
    setUIAsClosed(): Promise<void>;
    setUIAsOpen(): Promise<void>;
    shouldResurfaceUI(): boolean;
    updateChoices(decisions: TCFUserDecisions, fromLayer: TCF_DECISION_UI_LAYER): Promise<void>;
    resetTcf(): void;
    private applyPurposeRestrictions;
    private cmpApiUpdate;
    private getVendors;
    initTCModel({ tcString, acString }: {
        tcString: string;
        acString: string;
    }, isEuMode: boolean): Promise<void>;
    private setEnableAdvertiserConsentMode;
    private setAddtlConsent;
    private resetGVLWithLanguage;
    private resetTcfData;
    private setSelectedVendorsIncludeNonDisclosed;
    private savePurposes;
    private saveSpecialFeatures;
    private saveVendors;
    private setVendors;
    private getTcfData;
    injectTCString(tcString: string): Promise<boolean>;
    isPolicyVersion2(): boolean;
    private saveTCFData;
    private updateTCString;
    getVendorsCount(): number;
    getAcmVendors(): ACMVendor[];
    getAcmVendorsCount(): number;
    constructor(legacySettings: LegacySettings, coreTcf: CoreTcf, dpsJson: DpsJsonResponse, dataTransferSettings: DataTransferSettings, controllerId: string, language: string, excludeAcceptAllVendors: number[], enableDeprecatedV1ConsentSaving?: boolean);
}
export default Tcf;
