import type { Observable } from "rxjs"; import { Subject } from "rxjs"; import type { PageVisibility } from "../common/pageVisibility"; import type { ServerEvent } from "../generated-proto/blizzard/cameraKitEvents"; import { MetricsDefinition } from "../generated-proto/pb_schema/camera_kit/v3/service"; import type { Metric } from "../metrics/operational/Metric"; import type { TsProtoServiceClient } from "./createTsProtoClient"; import type { GrpcHandler } from "./grpcHandler"; export declare class MetricsClient { private readonly grpcClient; private readonly businessEventsHandler; private readonly operationalMetricsHandler; constructor(grpcClient: TsProtoServiceClient, pageVisibility: PageVisibility | false); setBusinessEvents(event: ServerEvent): Promise; setOperationalMetrics(metric: Metric): Promise; } /** * @internal * @deprecated Use externalMetricsFactory instead, which provides an array of Observables that can be subscribed to, * rather than a single Subject that is shared across all consumers. * This allows for better encapsulation and prevents unintended interactions between * different consumers of the metrics data. */ export declare const externalMetricsSubjectFactory: { (): Subject; token: "externalMetricsSubject"; dependencies: []; }; /** @internal */ export declare const externalMetricsFactory: { (): Observable[]; token: "externalMetrics"; dependencies: []; }; export declare const metricsClientFactory: { (args_0: Subject, args_1: Observable[], args_2: GrpcHandler, args_3: PageVisibility): MetricsClient; token: "metricsClient"; dependencies: readonly ["externalMetricsSubject", "externalMetrics", "grpcHandlerFactory", "pageVisibility"]; }; //# sourceMappingURL=metricsClient.d.ts.map