import { Context, IDs, Message, OptionalFields } from './models'; import { TrackingPlan, TypeOfProps } from './tracking-plan'; export declare class AnalyticsUser { ids: IDs; private enqueueMessage; private validator?; private context; constructor(ids: IDs, enqueueMessage: (message: Message) => void, validator?: T | undefined, context?: Context); identify(traits: Partial>, opts?: OptionalFields): this; /** * Tracks event on the currently identified user * The second argument is optional, however we are not able to add `?` to it * due to type-safety and language constraints - optional 2nd argument opens up the backdoor * that one could miss passing props to events which actually require props */ track(event: E, properties: TypeOfProps, opts?: OptionalFields): this; }