import { Event } from '@theia/core/lib/common/event'; import { TelemetryTrustedValue, TelemetryLoggerOptions } from './types-impl'; export declare class TelemetryExtImpl { _isTelemetryEnabled: boolean; private readonly onDidChangeTelemetryEnabledEmitter; readonly onDidChangeTelemetryEnabled: Event; get isTelemetryEnabled(): boolean; set isTelemetryEnabled(isTelemetryEnabled: boolean); createTelemetryLogger(sender: TelemetrySender, options?: TelemetryLoggerOptions | undefined): TelemetryLogger; } export declare class TelemetryLogger { private sender; readonly options: TelemetryLoggerOptions | undefined; readonly commonProperties: Record; telemetryEnabled: boolean; private readonly onDidChangeEnableStatesEmitter; readonly onDidChangeEnableStates: Event; private _isUsageEnabled; private _isErrorsEnabled; constructor(sender: TelemetrySender, telemetryEnabled: boolean, options?: TelemetryLoggerOptions); get isUsageEnabled(): boolean; set isUsageEnabled(isUsageEnabled: boolean); get isErrorsEnabled(): boolean; set isErrorsEnabled(isErrorsEnabled: boolean); logUsage(eventName: string, data?: Record>): void; logError(eventNameOrException: string | Error, data?: Record>): void; dispose(): void; private logEvent; private getCommonProperties; } interface TelemetrySender { sendEventData(eventName: string, data?: Record): void; sendErrorData(error: Error, data?: Record): void; flush?(): void | Thenable; } /** * Does a best possible effort to clean a data object from any possible PII. * @param data The data object to clean * @param paths Any additional patterns that should be removed from the data set * @returns A new object with the PII removed */ export declare function cleanData(data: Record, cleanUpPatterns: RegExp[]): Record; export {}; //# sourceMappingURL=telemetry-ext.d.ts.map