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<typeof MetricsDefinition>, pageVisibility: PageVisibility | false);
    setBusinessEvents(event: ServerEvent): Promise<void>;
    setOperationalMetrics(metric: Metric): Promise<void>;
}
/** @internal */
export declare const externalMetricsSubjectFactory: {
    (): Subject<Metric>;
    token: "externalMetricsSubject";
    dependencies: [];
};
export declare const metricsClientFactory: {
    (args_0: Subject<Metric>, args_1: GrpcHandler, args_2: PageVisibility): MetricsClient;
    token: "metricsClient";
    dependencies: readonly ["externalMetricsSubject", "grpcHandlerFactory", "pageVisibility"];
};
//# sourceMappingURL=metricsClient.d.ts.map