import type { MakeTaggedBusinessEvent } from "../../metrics/businessEventsReporter";
import type { LensRepository } from "../LensRepository";
import type { LensCore } from "../../lens-core-module/lensCore";
import type { LensAssetRepository } from "./LensAssetRepository";
/**
 * The AssetValidationFailed metric reports every time we handle an asset checksum validation failure.
 */
export type AssetValidationFailed = MakeTaggedBusinessEvent<"assetValidationFailed">;
/**
 * Registers a remote asset provider function with a given instance of LensCore.
 *
 * *Note:* LensCoreModule.initialize must be called on the desired LensCoreModule instance **prior** to passing it
 * to the LensAssetsProvider constructor. If this class is instantiated with a LensCoreModule that has not been
 * initialized, the registry of the asset provider function will fail silently and no remote assets will be loaded.
 * @internal
 */
export declare const registerLensAssetsProvider: {
    (args_0: LensCore, args_1: LensRepository, args_2: LensAssetRepository, args_3: import("@snap/state-management").StateMachine<import("@snap/state-management").Action<"applyLens", {
        lens: import("../Lens").Lens;
        launchData?: import("../LensLaunchData").LensLaunchData | undefined;
    }> | import("@snap/state-management").Action<"downloadComplete", import("../Lens").Lens> | import("@snap/state-management").Action<"turnedOn", import("../Lens").Lens> | import("@snap/state-management").Action<"resourcesLoaded", import("../Lens").Lens> | import("@snap/state-management").Action<"firstFrameProcessed", import("../Lens").Lens> | import("@snap/state-management").Action<"applyLensComplete", import("../Lens").Lens> | import("@snap/state-management").Action<"applyLensFailed", {
        error: import("../../session/lensState").LensErrors;
        lens: import("../Lens").Lens;
    }> | import("@snap/state-management").Action<"applyLensAborted", import("../Lens").Lens> | import("@snap/state-management").Action<"removeLens", undefined> | import("@snap/state-management").Action<"turnedOff", import("../Lens").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").Lens> | import("@snap/state-management").State<"lensApplied", import("../Lens").Lens>>): void;
    token: "registerLensAssetsProvider";
    dependencies: readonly ["lensCore", "LensRepository", "lensAssetRepository", "lensState"];
};
//# sourceMappingURL=LensAssetsProvider.d.ts.map