import type { MessengerActions, MessengerEvents, MockAnyNamespace } from "@metamask/messenger"; import { Messenger } from "@metamask/messenger"; import type { PermissionControllerMessenger } from "@metamask/permission-controller"; import { PermissionController, SubjectMetadataController } from "@metamask/permission-controller"; import type { ExecutionServiceMessenger, SnapControllerMessenger, SnapInterfaceControllerMessenger, SnapRegistryControllerMessenger } from "@metamask/snaps-controllers"; import { SnapInterfaceController } from "@metamask/snaps-controllers"; import type { SnapId } from "@metamask/snaps-sdk"; import type { SnapManifest } from "@metamask/snaps-utils"; import type { SimulationOptions } from "./options.cjs"; import type { RestrictedMiddlewareHooks } from "./simulation.cjs"; import type { RunSagaFunction } from "./store/index.cjs"; export type RootControllerMessenger = Messenger, MessengerEvents>; export type GetControllersOptions = { controllerMessenger: Messenger; hooks: RestrictedMiddlewareHooks; runSaga: RunSagaFunction; options: SimulationOptions; }; export type Controllers = { permissionController: PermissionController; subjectMetadataController: SubjectMetadataController; interfaceController: SnapInterfaceController; }; /** * Get the controllers for the Snap. * * @param options - The options. * @returns The controllers for the Snap. */ export declare function getControllers(options: GetControllersOptions): Controllers; /** * Register the Snap. This sets up the Snap's permissions and subject metadata. * * @param snapId - The ID of the Snap to install. * @param manifest - The parsed manifest. * @param controllers - The controllers for the Snap. * @param controllers.permissionController - The permission controller. * @param controllers.subjectMetadataController - The subject metadata controller. */ export declare function registerSnap(snapId: SnapId, manifest: SnapManifest, { permissionController, subjectMetadataController, }: Omit): Promise; //# sourceMappingURL=controllers.d.cts.map