declare module "vscode-extension-telemetry" {
    export default class TelemetryReporter {
        private extensionId;
        private extensionVersion;
        private appInsightsClient;
        private commonProperties;
        private static SQM_KEY;
        private static REGISTRY_USERID_VALUE;
        private static REGISTRY_MACHINEID_VALUE;

        /**
         * Constructs a new telemetry reporter
         * @param {string} extensionId All events will be prefixed with this event name
         * @param {string} extensionVersion Extension version to be reported with each event
         * @param {string} key The application insights key
         */
        constructor(extensionId: string, extensionVersion: string, key: string);
        private setupAIClient(client);
        private loadVSCodeCommonProperties(machineId, sessionId, version);
        private loadCommonProperties();
        private addCommonProperties(properties);
        private getWinRegKeyData(key, name, hive, callback);

        /**
         * Sends a telemetry event
         * @param {string} eventName The event name
         * @param {object} properties An associative array of strings
         * @param {object} measures An associative array of numbers
         */
        sendTelemetryEvent(eventName: string, properties?: {
            [key: string]: string;
        }, measures?: {
            [key: string]: number;
        }): void;
    }
}
