import type { MetricsClient } from "../../clients/metricsClient";
import type { Dimensions, RequestStateEventTarget } from "../../handlers/requestStateEmittingHandler";
import type { MakeTaggedBusinessEvent } from "../businessEventsReporter";
import type { MetricsEventTarget } from "../metricsEventTarget";
export declare const isLensOrAssetRequest: (value: Dimensions) => value is AssetDownloadDimensions | LensDownloadDimensions;
/**
 * The LensDownload metric is triggered by any download of lens content.
 *
 * It contains download stats, which lens was requested, and whether prefetch was used.
 *
 * It corresponds to the internal CameraKitLensDownload event, described here:
 * https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY/edit#heading=h.stqom49qs91t
 */
export type LensDownload = MakeTaggedBusinessEvent<"lensDownload">;
export type LensDownloadDimensions = {
    requestType: "lens_content";
    lensId: string;
};
/**
 * The AssetDownload metric is triggered by any type of asset download.
 *
 * It contains download stats, which asset was requested, and whether prefetch was used.
 *
 * It corresponds to the internal CameraKitAssetDownload event, described here:
 * https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY/edit#heading=h.vlormd1724fp
 */
export type AssetDownload = MakeTaggedBusinessEvent<"assetDownload">;
export type AssetDownloadDimensions = {
    requestType: "asset";
    assetType: string;
    assetId: string;
    lensId: string;
};
export declare const reportLensAndAssetDownload: {
    (args_0: MetricsEventTarget, args_1: MetricsClient, args_2: RequestStateEventTarget): void;
    token: "reportLensAndAssetDownload";
    dependencies: readonly ["metricsEventTarget", "metricsClient", "requestStateEventTarget"];
};
//# sourceMappingURL=reportLensAndAssetDownload.d.ts.map