import type { PublisherOptions, SubscriberCallback, SubscriberOptions } from './EventBus';
export declare const TrackingEvents: {
    readonly ANALYTICS_DECLINED: "analyticsConsentDeclined";
    readonly ANALYTICS_ACCEPTED: "analyticsConsentAccepted";
    readonly CONSENT_COLLECTED: "visitorConsentCollected";
};
export type TrackingEventsType = typeof TrackingEvents[keyof typeof TrackingEvents];
export type ConsentTrackingEventName = `${TrackingEventsType}`;
export type ConsentEvents = {
    [K in ConsentTrackingEventName]: CustomerPrivacyPayload;
};
export interface CustomerPrivacyPayload {
    customerPrivacy: {
        analyticsProcessingAllowed: boolean;
        marketingAllowed: boolean;
        preferencesProcessingAllowed: boolean;
        saleOfDataAllowed: boolean;
    };
}
export interface CustomerPrivacyEventBus {
    publish<K extends keyof ConsentEvents>(name: K, payload: CustomerPrivacyPayload, options?: PublisherOptions): boolean;
    subscribe<K extends keyof ConsentEvents>(name: K, callback: SubscriberCallback<CustomerPrivacyPayload>, options?: SubscriberOptions): () => boolean;
}
//# sourceMappingURL=PrivacyApi.d.ts.map