import { CookieConsentCategory, DisplayMode, SecondaryButtonMode } from '../constants'; import { VanillaCookieConsent } from './vanilla-cookieconsent'; export type Values = T[keyof T]; export type CookieConsentCategoryValues = Values; export type CategoriesChangeset = { accepted: CookieConsentCategoryValues[]; rejected: CookieConsentCategoryValues[]; changed: CookieConsentCategoryValues[]; }; export type OnFirstAcceptCallback = (cookieConsent: VanillaCookieConsent.CookieConsent) => void; export type OnAcceptCallback = (cookieConsent: VanillaCookieConsent.CookieConsent) => void; export type OnChangeCallback = (cookieConsent: VanillaCookieConsent.CookieConsent, categories: CategoriesChangeset) => void; export type TranslationOverride = { consentTitle?: string; descriptionIntro?: string; settingsModalMoreInfo?: string; }; export type CookieTableCategories = { [category in CookieConsentCategoryValues]: VanillaCookieConsent.CookieTableItem[]; }; export type CookieTable = { [language: string]: CookieTableCategories; }; export type CookieConsentManagerOptions = { defaultLang: string; autodetectLang: boolean; consentCollectorApiUrl: string; onFirstAccept: OnFirstAcceptCallback; onAccept: OnAcceptCallback; onChange: OnChangeCallback; companyNames: string[]; displayMode: Values; secondaryButtonMode: Values; translationOverrides: Record; cookieTable: CookieTable; config: VanillaCookieConsent.Options; }; export type CookieConsentManager = (serviceName: string, args?: Partial) => VanillaCookieConsent.CookieConsent;