type PurposesKeys = 'Cookies' | 'CookiesAnalytics' | 'CookiesSocial' | 'AdvertisingPersonalization' | 'CookiesMarketing' | 'Analytics' | 'ContentPersonalization' | 'AdDelivery' | 'DeviceAccess' | 'OfflineMatch' | 'LinkDevices' | 'PreciseGeo' | 'SelectBasicAds' | 'CreateAdsProfile' | 'SelectPersonalizedAds' | 'CreateContentProfile' | 'SelectPersonalizedContent' | 'MeasureAdPerformance' | 'MeasureContentPerformance' | 'MarketResearch' | 'ImproveProducts' | 'mesureda-6qyqaZXC' | 'publicite-9qedKJMX' | 'activation-gGierZpp';
type PurposesValues = 'cookies' | 'cookies_analytics' | 'cookies_social' | 'advertising_personalization' | 'cookies_marketing' | 'analytics' | 'content_personalization' | 'ad_delivery' | 'device_access' | 'offline_match' | 'link_devices' | 'precise_geo' | 'select_basic_ads' | 'create_ads_profile' | 'select_personalized_ads' | 'create_content_profile' | 'select_personalized_content' | 'measure_ad_performance' | 'measure_content_performance' | 'market_research' | 'improve_products' | 'mesureda-6qyqaZXC' | 'publicite-9qedKJMX' | 'activation-gGierZpp';
type PurposesList = Record<PurposesKeys, PurposesValues>;
export interface PurposeDefinition {
    id: string;
    key?: PurposesValues;
    name?: string;
    description?: string;
}
export interface VendorDefinition {
    id: string;
    name?: string;
    description?: string;
    purposes?: PurposesValues[];
    legitimate_interest_purposes?: PurposesValues[];
}
export interface DidomiData {
    purposes: Partial<Record<PurposesValues, PurposeDefinition>>;
    vendors: Record<string, VendorDefinition>;
    version?: string;
}
interface Notice {
    show: () => void;
}
export interface Transaction {
    enablePurpose: (purpose: PurposesValues) => void;
    disablePurpose: (purpose: PurposesValues) => void;
    enableVendor: (vendorId: string) => void;
    disableVendor: (vendorId: string) => void;
    commit: () => void;
}
export interface DidomiStatus {
    purposes: Record<string, {
        enabled: boolean;
        id: string;
    }>;
    vendors: Record<string, {
        enabled: boolean;
        id: string;
    }>;
}
export interface Didomi {
    CCPA: string[];
    Purposes: PurposesList;
    data?: DidomiData;
    notice: Notice;
    preferences: {
        hide: () => void;
        isVisible: () => void;
        show: () => void;
    };
    theme: string[];
    version: string;
    getCurrentUserStatus: () => {
        purposes: Record<PurposesValues, {
            enabled: boolean;
            id: string;
        }>;
        vendors: Record<string, {
            enabled: boolean;
            id: string;
        }>;
    };
    reset: () => void;
    openCurrentUserStatusTransaction: () => Transaction;
    setUserAgreeToAll(): void;
    addVendorStatusListener: (vendor: string, callback: (status: {
        enabled: boolean;
        id: string;
    }) => void) => void;
    setCurrentUserStatus(status: DidomiStatus): Promise<void>;
}
export type DidomiOnReady = ((Didomi: Didomi) => void)[];
interface EventListener {
    event: string;
    listener: () => void;
}
export type DidomiEventListeners = EventListener[];
export interface CmpType {
    consentEventsCount: number;
}
export interface TcData {
    eventStatus: string;
    listenerId: number;
}
export {};
