-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
config.ts
54 lines (45 loc) · 1.25 KB
/
config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import { PageViewEventTrigger } from '.'
export type IntegrationId = string
export interface IntegrationIconComponentProps {
color?: string
className?: string
[key: string]: unknown
}
export interface IntegrationConfigOptions {
[key: string]: any
}
export interface IntegrationConfig {
id: string
title: string
description: string
category: string
color?: string
contrastColor?: string
privacyPolicyUrl?: string
Icon: React.FC<IntegrationIconComponentProps>
pageViewEventHandler?: PageViewEventTrigger
WrapperComponent?: React.FC
options?: IntegrationConfigOptions
enabledByDefault?: boolean
}
export interface ConsentManagerConfig {
integrations: IntegrationConfig[]
onChangeDecision?: (
lastDecisionsState: Record<IntegrationId, boolean>,
nextDecisionState: Record<IntegrationId, boolean>
) => unknown
}
export interface ConsentManagerDecisions {
[key: string]: boolean
}
export interface FallbackComponentProps {
integrationId: IntegrationId
fallbackUrl?: string
[key: string]: unknown
}
export interface TrackerEvents {
track?: (...args: unknown[]) => unknown
trackEvent?: (...args: unknown[]) => unknown
trackPageView?: (...args: unknown[]) => unknown
}
export interface Tracker extends TrackerEvents {}