import type { ApiEvent, MongoshBus } from '@mongosh/types'; import type { MongoLogWriter } from 'mongodb-log-writer'; import type { MongoshAnalytics } from './analytics-helpers'; import type { MultiSet } from './helpers'; export interface MongoshLoggingAndTelemetry { attachLogger(logger: MongoLogWriter): void; detachLogger(): Promise; flush(): Promise; } export type MongoshLoggingAndTelemetryArguments = { bus: MongoshBus; analytics: MongoshAnalytics; userTraits: { platform: string; } & { [key: string]: unknown; }; mongoshVersion: string; deviceId: Promise | string; }; export type MongoshTrackingProperties = { mongosh_version: string; session_id: string; }; export type LoggingAndTelemetryBusEventState = { hasStartedMongoshRepl: boolean; apiCallTracking: { isEnabled: boolean; apiCalls: MultiSet>; deprecatedApiCalls: MultiSet>; }; usesShellOption: boolean; telemetryAnonymousId: string | undefined; userId: string | undefined; };