sussudio
Version:
An unofficial VS Code Internal API
45 lines (44 loc) • 2.41 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { IConfigurationService } from "../../configuration/common/configuration.mjs";
import { IProductService } from "../../product/common/productService.mjs";
import { ClassifiedEvent, IGDPRProperty, OmitMetadata, StrictPropertyCheck } from "./gdprTypings.mjs";
import { ITelemetryData, ITelemetryInfo, ITelemetryService, TelemetryLevel } from "./telemetry.mjs";
import { ITelemetryAppender } from "./telemetryUtils.mjs";
export interface ITelemetryServiceConfig {
appenders: ITelemetryAppender[];
sendErrorTelemetry?: boolean;
commonProperties?: Promise<{
[name: string]: any;
}>;
piiPaths?: string[];
}
export declare class TelemetryService implements ITelemetryService {
private _configurationService;
private _productService;
static readonly IDLE_START_EVENT_NAME = "UserIdleStart";
static readonly IDLE_STOP_EVENT_NAME = "UserIdleStop";
readonly _serviceBrand: undefined;
private _appenders;
private _commonProperties;
private _experimentProperties;
private _piiPaths;
private _telemetryLevel;
private _sendErrorTelemetry;
private readonly _disposables;
private _cleanupPatterns;
constructor(config: ITelemetryServiceConfig, _configurationService: IConfigurationService, _productService: IProductService);
setExperimentProperty(name: string, value: string): void;
private _updateTelemetryLevel;
get sendErrorTelemetry(): boolean;
get telemetryLevel(): TelemetryLevel;
getTelemetryInfo(): Promise<ITelemetryInfo>;
dispose(): void;
private _log;
publicLog(eventName: string, data?: ITelemetryData): Promise<any>;
publicLog2<E extends ClassifiedEvent<OmitMetadata<T>> = never, T extends IGDPRProperty = never>(eventName: string, data?: StrictPropertyCheck<T, E>): Promise<any>;
publicLogError(errorEventName: string, data?: ITelemetryData): Promise<any>;
publicLogError2<E extends ClassifiedEvent<OmitMetadata<T>> = never, T extends IGDPRProperty = never>(eventName: string, data?: StrictPropertyCheck<T, E>): Promise<any>;
}