export type TPropertyItem = { key: string; value: string; }; type TPreparedProperties = Array; export type TProperties = TPreparedProperties | null; interface IClickStreamBaseItem { eventAction: string; value: string; properties?: TProperties; } type TSendClickStreamCategoryParam = { eventCategory: string; CI?: never; } | { eventCategory?: never; CI: string; }; export type TSendClickStreamEventParams = IClickStreamBaseItem & TSendClickStreamCategoryParam; export type TSendClickStreamEvent = (params: TSendClickStreamEventParams) => string | undefined; export declare abstract class ClickStream { abstract sendClickStreamEvent: TSendClickStreamEvent; abstract getOperationId: (action: string) => string; abstract getProcess: (name: string, isStart?: boolean) => TPropertyItem; } export interface IDigitalTraceContext { operationName?: string; operationId?: string; processId?: string; processName?: string; properties?: Record; } export type TWithDigitalTrace = { data: T; digitalTrace?: E; }; export {};