import type { Messenger } from "@metamask/messenger";
import type { PermissionSpecificationBuilder, PermissionType, RestrictedMethodSpecificationConstraint } from "@metamask/permission-controller";
import type { DialogMessengerActions } from "./dialog.mjs";
import type { GetBip32EntropyMessengerActions, GetBip32EntropyMethodHooks } from "./getBip32Entropy.mjs";
import type { GetBip32PublicKeyMessengerActions, GetBip32PublicKeyMethodHooks } from "./getBip32PublicKey.mjs";
import type { GetBip44EntropyMessengerActions, GetBip44EntropyMethodHooks } from "./getBip44Entropy.mjs";
import type { GetEntropyHooks, GetEntropyMessengerActions } from "./getEntropy.mjs";
import type { GetLocaleMethodHooks } from "./getLocale.mjs";
import type { GetPreferencesMethodHooks } from "./getPreferences.mjs";
import type { InvokeSnapMessengerActions } from "./invokeSnap.mjs";
import type { ManageAccountsMethodHooks } from "./manageAccounts.mjs";
import type { ManageStateMessengerActions, ManageStateMethodHooks } from "./manageState.mjs";
import type { NotifyMessengerActions, NotifyMethodHooks } from "./notify.mjs";
import type { MethodHooksObject } from "../utils.mjs";
export { WALLET_SNAP_PERMISSION_KEY } from "./invokeSnap.mjs";
export { getEncryptionEntropy } from "./manageState.mjs";
export type RestrictedMethodActions = DialogMessengerActions | GetBip32EntropyMessengerActions | GetBip32PublicKeyMessengerActions | GetBip44EntropyMessengerActions | GetEntropyMessengerActions | InvokeSnapMessengerActions | ManageStateMessengerActions | NotifyMessengerActions;
export type RestrictedMethodMessenger = Messenger<string, RestrictedMethodActions>;
export type RestrictedMethodHooks = GetBip32EntropyMethodHooks & GetBip32PublicKeyMethodHooks & GetBip44EntropyMethodHooks & GetEntropyHooks & ManageStateMethodHooks & NotifyMethodHooks & ManageAccountsMethodHooks & GetLocaleMethodHooks & GetPreferencesMethodHooks;
type RestrictedMethodPermissionBuilder = {
    targetName: string;
    specificationBuilder: PermissionSpecificationBuilder<PermissionType.RestrictedMethod, any, RestrictedMethodSpecificationConstraint>;
    actionNames?: readonly RestrictedMethodActions['type'][];
    methodHooks?: MethodHooksObject<Record<string, unknown>>;
};
export declare const restrictedMethodPermissionBuilders: Record<string, RestrictedMethodPermissionBuilder>;
export * from "./caveats/index.mjs";
export type { DialogApprovalTypes } from "./dialog.mjs";
export { DIALOG_APPROVAL_TYPES } from "./dialog.mjs";
//# sourceMappingURL=index.d.mts.map