export interface IPropertyData { classification: "SystemMetaData" | "CallstackOrException" | "CustomerContent" | "PublicNonPersonalData" | "EndUserPseudonymizedInformation"; purpose: "PerformanceAndHealth" | "FeatureInsight" | "BusinessInsight"; comment: string; expiration?: string; endpoint?: string; } export interface IGDPRProperty { owner: string; comment: string; expiration?: string; readonly [name: string]: IPropertyData | undefined | IGDPRProperty | string; } type IGDPRPropertyWithoutMetadata = Omit; export type OmitMetadata = Omit; export type ClassifiedEvent = { [k in keyof T]: unknown; }; export type StrictPropertyChecker = keyof TEvent extends keyof OmitMetadata ? keyof OmitMetadata extends keyof TEvent ? TEvent : TError : TError; export type StrictPropertyCheckError = { error: "Type of classified event does not match event properties"; }; export type StrictPropertyCheck = StrictPropertyChecker>, StrictPropertyCheckError>; export {};