import { PartialContainer } from "../../dependency-injection/PartialContainer";
/**
 * These metrics reporters must be run once in the top-level DI container. They only depend on globally-available
 * services.
 *
 * The businessEventsReporter is special, it doesn't create any of its own metrics, it simply listens to the global
 * metricsEventTarget and reports metrics emitted there to our backend.
 */
export declare const reportGloballyScopedMetrics: PartialContainer<{
    reportBenchmarks: Promise<void>;
    reportLegalState: void;
    reportLensAndAssetDownload: void;
    reportHttpMetrics: void;
    reportPlatformCapabilities: Promise<void>;
}, {
    configuration: import("../..").CameraKitConfiguration;
    requestStateEventTarget: import("../../handlers/requestStateEmittingHandler").RequestStateEventTarget;
    metricsClient: import("../../clients/metricsClient").MetricsClient;
    legalState: import("@snap/state-management").StateMachine<import("@snap/state-management").Action<"requestLegalPrompt", undefined> | import("@snap/state-management").Action<"accept", string> | import("@snap/state-management").Action<"reject", string>, import("@snap/state-management").State<"unknown", undefined> | import("@snap/state-management").State<"accepted", undefined> | import("@snap/state-management").State<"rejected", undefined>>;
    metricsEventTarget: import("../metricsEventTarget").MetricsEventTarget;
}>;
/**
 * These metrics reporters must be run once for each CameraKitSession DI container created. They may depend on services
 * which are only available at the session scope (e.g. the CameraKitSession itself).
 */
export declare const reportSessionScopedMetrics: PartialContainer<{
    reportLensValidationFailed: void;
    reportLensView: Promise<void>;
    reportLensWait: void;
    reportUserSession: Promise<void>;
    reportSessionException: void;
}, {
    configuration: import("../..").CameraKitConfiguration;
    metricsClient: import("../../clients/metricsClient").MetricsClient;
    metricsEventTarget: import("../metricsEventTarget").MetricsEventTarget;
    lensState: import("@snap/state-management").StateMachine<import("@snap/state-management").Action<"applyLens", {
        lens: import("../..").Lens;
        launchData?: import("../..").LensLaunchData | undefined;
    }> | import("@snap/state-management").Action<"downloadComplete", import("../..").Lens> | import("@snap/state-management").Action<"turnedOn", import("../..").Lens> | import("@snap/state-management").Action<"resourcesLoaded", import("../..").Lens> | import("@snap/state-management").Action<"firstFrameProcessed", import("../..").Lens> | import("@snap/state-management").Action<"applyLensComplete", import("../..").Lens> | import("@snap/state-management").Action<"applyLensFailed", {
        error: import("../../session/lensState").LensErrors;
        lens: import("../..").Lens;
    }> | import("@snap/state-management").Action<"applyLensAborted", import("../..").Lens> | import("@snap/state-management").Action<"removeLens", undefined> | import("@snap/state-management").Action<"turnedOff", import("../..").Lens> | import("@snap/state-management").Action<"removeLensComplete", undefined> | import("@snap/state-management").Action<"removeLensFailed", Error>, import("@snap/state-management").State<"noLensApplied", undefined> | import("@snap/state-management").State<"applyingLens", import("../..").Lens> | import("@snap/state-management").State<"lensApplied", import("../..").Lens>>;
    sessionState: import("@snap/state-management").StateMachine<import("@snap/state-management").Action<"suspend", import("../../session/CameraKitSession").CameraKitSession> | import("@snap/state-management").Action<"resume", import("../../session/CameraKitSession").CameraKitSession> | import("@snap/state-management").Action<"destroy", undefined>, import("@snap/state-management").State<"inactive", undefined> | import("@snap/state-management").State<"active", import("../../session/CameraKitSession").CameraKitSession> | import("@snap/state-management").State<"destroyed", undefined>>;
    CameraKitSession: import("../../session/CameraKitSession").CameraKitSession;
    reportGlobalException: import("./reportGlobalException").GlobalExceptionReporter;
}>;
//# sourceMappingURL=reporters.d.ts.map