wangzhibo
2026-05-09 53418655c061ac26f66058253f39200aced1ab1d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License.
 */
 
import { PerformanceEvent } from "./PerformanceEvent.js";
import { AccountInfo } from "../../account/AccountInfo.js";
 
export type PerformanceCallbackFunction = (events: PerformanceEvent[]) => void;
 
export type InProgressPerformanceEvent = {
    end: (
        event?: Partial<PerformanceEvent>,
        error?: unknown,
        account?: AccountInfo
    ) => PerformanceEvent | null;
    discard: () => void;
    add: (fields: { [key: string]: {} | undefined }) => void;
    increment: (fields: { [key: string]: number | undefined }) => void;
    event: PerformanceEvent;
};
 
export interface IPerformanceClient {
    startMeasurement(
        measureName: string,
        correlationId?: string
    ): InProgressPerformanceEvent;
    endMeasurement(event: PerformanceEvent): PerformanceEvent | null;
    discardMeasurements(correlationId: string): void;
    addFields(
        fields: { [key: string]: {} | undefined },
        correlationId: string
    ): void;
    incrementFields(
        fields: { [key: string]: number | undefined },
        correlationId: string
    ): void;
    removePerformanceCallback(callbackId: string): boolean;
    addPerformanceCallback(callback: PerformanceCallbackFunction): string;
    emitEvents(events: PerformanceEvent[], correlationId: string): void;
    generateId(): string;
}