declare let process: any;
declare namespace pxt {
    type Map<T> = {
        [index: string]: T;
    };
    type EventSource<T> = {
        subscribe(listener: (ev: T) => void): () => void;
        emit(ev: T): void;
        forEach(callback: (ev: T) => void): void;
    };
    export namespace perf {
        let startTimeMs: number;
        let measurementThresholdMs: number;
        let stats: {
            durations: EventSource<{
                name: string;
                start: number;
                duration: number;
                params?: Map<string>;
            }>;
            milestones: EventSource<{
                milestone: string;
                time: number;
                params?: Map<string>;
            }>;
        };
        function isEnabled(): boolean;
        let perfReportLogged: boolean;
        function splitMs(): number;
        function prettyStr(ms: number): string;
        function splitStr(): string;
        function recordMilestone(msg: string, params?: Map<string>): void;
        function init(): void;
        function measureStart(name: string): void;
        function measureEnd(name: string, params?: Map<string>): void;
        function report(): {
            milestones: {
                [index: string]: number;
            };
            durations: {
                [index: string]: number;
            };
        };
    }
    export function initAnalyticsAsync(): void;
    export function aiTrackEvent(id: string, data?: any, measures?: any): void;
    export function aiTrackException(err: any, kind?: string, props?: any): void;
    export function initializeAppInsightsInternal(includeCookie?: boolean): void;
    export function setInteractiveConsent(enabled: boolean): void;
    export {};
}
