import { VegaSlimmer } from '../../vega-slimmer/vega-slimmer-core'; export declare type ComponentUsageRuntimeMetricsDefinition = { payloadKey: string; payloadValue: (host: T) => boolean; payloadDescription?: string; }; /** * The `VegaComponentUsageRuntimeMetricsSlimmer` class is used for sending usage * telemetry data to a telemetry service based on defined usage metrics for a specific component. * We did not use global slimmer because each component introduces all the definitions of other components during the did load */ export declare class VegaComponentUsageRuntimeMetricsSlimmer extends VegaSlimmer { private readonly usageDefinitions?; static baseUsageKey: string; host: T; /** * The constructor initializes a private readonly property with an optional array of * ComponentUsageRuntimeMetricsDefinition. * * @param {ComponentUsageRuntimeMetricsDefinition[]} [usageDefinitions] - The `usageDefinitions` * parameter in the constructor is of type `ComponentUsageRuntimeMetricsDefinition[]`, which is an * array of `ComponentUsageRuntimeMetricsDefinition` objects. This parameter is optional as it is * marked with a question mark `?`, meaning it can be omitted when creating an instance of */ constructor(usageDefinitions?: ComponentUsageRuntimeMetricsDefinition[]); /** * register the observer when the slimmer method called */ sendUsagePayloadToTelemetry(): void; /** * The function `getComponentUsageMetricsPayload` generates a payload containing component usage * metrics data. * * @returns {Record} The `getComponentUsageMetricsPayload` method returns an object with the following * structure: * { * componentName: string, // The tag name of the host component in uppercase * data: { // An object containing payload data with keys and boolean values * 'COMPONENT_USED': true, * } */ private getComponentUsageMetricsPayload; }