@bemit/consent-ui
Version:
49 lines (48 loc) • 1.72 kB
TypeScript
import { ConsentUiPrefersState } from '@bemit/consent-ui/ConsentUiInfo';
import { ConsentUiTracker } from '@bemit/consent-ui/ConsentUiTracker';
import { EventAware } from '@bemit/consent-ui/EventAware';
export type ConsentCbOff = () => void;
export interface ConsentUiStateType {
ready?: boolean;
hasChosen?: boolean;
consent?: string;
tag?: string;
userPrefers?: ConsentUiPrefersState;
}
export declare class ConsentUiState extends EventAware {
protected version: string;
protected localKey: string;
protected initialized: boolean;
protected hasChosen: boolean;
protected acceptedVersion: string | undefined;
protected tag: string | undefined;
userPrefers: ConsentUiPrefersState | undefined;
trackersState: {
[id: string]: boolean;
};
trackersActivatedHistory: {
[id: string]: boolean;
};
trackers: ConsentUiTracker[] | undefined;
constructor(settings: {
version: string;
localKey: string;
trackers: ConsentUiTracker[];
});
init(): void;
dispatchPreferences(): void;
private readTag;
giveConsent(preferences?: ConsentUiPrefersState): void;
updateConsent(type: 'services' | 'groups', id: string, prefer: undefined | 1 | 2): void;
private persistConsent;
onConsent(cb: (version: string) => void): ConsentCbOff;
toState(): ConsentUiStateType;
}
export interface ConsentUiOptions {
version: string;
localKey: string;
trackers: ConsentUiTracker[];
}
export declare const defineConsent: (options: ConsentUiOptions) => void;
export declare const prepareConsent: (options: ConsentUiOptions) => void;
export declare const consentUi: () => ConsentUiState | undefined;