import type { Messenger } from "@metamask/messenger";
import type { PermissionSpecificationBuilder, PermissionType, RestrictedMethodSpecificationConstraint } from "@metamask/permission-controller";
import type { DialogMessengerActions } from "./dialog.cjs";
import type { GetBip32EntropyMessengerActions, GetBip32EntropyMethodHooks } from "./getBip32Entropy.cjs";
import type { GetBip32PublicKeyMessengerActions, GetBip32PublicKeyMethodHooks } from "./getBip32PublicKey.cjs";
import type { GetBip44EntropyMessengerActions, GetBip44EntropyMethodHooks } from "./getBip44Entropy.cjs";
import type { GetEntropyHooks, GetEntropyMessengerActions } from "./getEntropy.cjs";
import type { GetLocaleMethodHooks } from "./getLocale.cjs";
import type { GetPreferencesMethodHooks } from "./getPreferences.cjs";
import type { InvokeSnapMessengerActions } from "./invokeSnap.cjs";
import type { ManageAccountsMethodHooks } from "./manageAccounts.cjs";
import type { ManageStateMessengerActions, ManageStateMethodHooks } from "./manageState.cjs";
import type { NotifyMessengerActions, NotifyMethodHooks } from "./notify.cjs";
import type { MethodHooksObject } from "../utils.cjs";
export { WALLET_SNAP_PERMISSION_KEY } from "./invokeSnap.cjs";
export { getEncryptionEntropy } from "./manageState.cjs";
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.cjs";
export type { DialogApprovalTypes } from "./dialog.cjs";
export { DIALOG_APPROVAL_TYPES } from "./dialog.cjs";
//# sourceMappingURL=index.d.cts.map