import { Messenger } from "@metamask/messenger";
import type { MessengerActions, MessengerEvents, MockAnyNamespace } from "@metamask/messenger";
import type { MultichainAccountServiceMessenger } from "../types.mjs";
export type AllMultichainAccountServiceActions = MessengerActions<MultichainAccountServiceMessenger>;
export type AllMultichainAccountServiceEvents = MessengerEvents<MultichainAccountServiceMessenger>;
export type RootMessenger = Messenger<MockAnyNamespace, AllMultichainAccountServiceActions, AllMultichainAccountServiceEvents>;
/**
 * Creates and returns a root messenger for testing
 *
 * @returns A messenger instance
 */
export declare function getRootMessenger(): RootMessenger;
/**
 * Retrieves a restricted messenger for the MultichainAccountService.
 *
 * @param rootMessenger - The root messenger instance. Defaults to a new Messenger created by getRootMessenger().
 * @param extra - Extra messenger options.
 * @param extra.actions - Extra actions to delegate.
 * @param extra.events - Extra events to delegate.
 * @returns The restricted messenger for the MultichainAccountService.
 */
export declare function getMultichainAccountServiceMessenger(rootMessenger: RootMessenger, extra?: {
    actions?: AllMultichainAccountServiceActions['type'][];
    events?: AllMultichainAccountServiceEvents['type'][];
}): MultichainAccountServiceMessenger;
//# sourceMappingURL=messenger.d.mts.map