import type { DialogMethodHooks } from "./dialog.mjs";
import type { GetBip32EntropyMethodHooks } from "./getBip32Entropy.mjs";
import type { GetBip32PublicKeyMethodHooks } from "./getBip32PublicKey.mjs";
import type { GetBip44EntropyMethodHooks } from "./getBip44Entropy.mjs";
import type { GetEntropyHooks } from "./getEntropy.mjs";
import type { GetLocaleMethodHooks } from "./getLocale.mjs";
import type { GetPreferencesMethodHooks } from "./getPreferences.mjs";
import type { InvokeSnapMethodHooks } from "./invokeSnap.mjs";
import type { ManageAccountsMethodHooks } from "./manageAccounts.mjs";
import type { ManageStateMethodHooks } from "./manageState.mjs";
import type { NotifyMethodHooks } from "./notify.mjs";
export { WALLET_SNAP_PERMISSION_KEY } from "./invokeSnap.mjs";
export { getEncryptionEntropy } from "./manageState.mjs";
export type RestrictedMethodHooks = DialogMethodHooks & GetBip32EntropyMethodHooks & GetBip32PublicKeyMethodHooks & GetBip44EntropyMethodHooks & GetEntropyHooks & InvokeSnapMethodHooks & ManageStateMethodHooks & NotifyMethodHooks & ManageAccountsMethodHooks & GetLocaleMethodHooks & GetPreferencesMethodHooks;
export declare const restrictedMethodPermissionBuilders: {
    readonly snap_dialog: Readonly<{
        readonly targetName: "snap_dialog";
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.RestrictedMethod, {
            allowedCaveats?: readonly [string, ...string[]] | null | undefined;
            methodHooks: DialogMethodHooks;
        }, {
            permissionType: import("@metamask/permission-controller").PermissionType.RestrictedMethod;
            targetName: "snap_dialog";
            methodImplementation: (args: import("@metamask/permission-controller").RestrictedMethodOptions<import("@metamask/snaps-sdk").DialogParams>) => Promise<import("@metamask/utils").Json>;
            allowedCaveats: readonly [string, ...string[]] | null;
        }>;
        readonly methodHooks: import("../utils.mjs").MethodHooksObject<DialogMethodHooks>;
    }>;
    readonly snap_getBip32Entropy: Readonly<{
        readonly targetName: "snap_getBip32Entropy";
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.RestrictedMethod, {
            methodHooks: GetBip32EntropyMethodHooks;
        }, {
            permissionType: import("@metamask/permission-controller").PermissionType.RestrictedMethod;
            targetName: "snap_getBip32Entropy";
            methodImplementation: (args: import("@metamask/permission-controller").RestrictedMethodOptions<import("@metamask/snaps-sdk").GetBip32EntropyParams>) => Promise<import("@metamask/key-tree").JsonSLIP10Node>;
            allowedCaveats: readonly [string, ...string[]] | null;
            validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
        }>;
        readonly methodHooks: import("../utils.mjs").MethodHooksObject<GetBip32EntropyMethodHooks>;
    }>;
    readonly snap_getBip32PublicKey: Readonly<{
        readonly targetName: "snap_getBip32PublicKey";
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.RestrictedMethod, {
            methodHooks: GetBip32PublicKeyMethodHooks;
        }, {
            permissionType: import("@metamask/permission-controller").PermissionType.RestrictedMethod;
            targetName: "snap_getBip32PublicKey";
            methodImplementation: (args: import("@metamask/permission-controller").RestrictedMethodOptions<import("@metamask/snaps-sdk").GetBip32PublicKeyParams>) => Promise<string>;
            allowedCaveats: readonly [string, ...string[]] | null;
            validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
        }>;
        readonly methodHooks: import("../utils.mjs").MethodHooksObject<GetBip32PublicKeyMethodHooks>;
    }>;
    readonly snap_getBip44Entropy: Readonly<{
        readonly targetName: "snap_getBip44Entropy";
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.RestrictedMethod, {
            methodHooks: GetBip44EntropyMethodHooks;
        }, {
            permissionType: import("@metamask/permission-controller").PermissionType.RestrictedMethod;
            targetName: "snap_getBip44Entropy";
            methodImplementation: (args: import("@metamask/permission-controller").RestrictedMethodOptions<import("@metamask/snaps-sdk").GetBip44EntropyParams>) => Promise<import("@metamask/key-tree").JsonBIP44CoinTypeNode>;
            allowedCaveats: readonly [string, ...string[]] | null;
            validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
        }>;
        readonly methodHooks: import("../utils.mjs").MethodHooksObject<GetBip44EntropyMethodHooks>;
    }>;
    readonly snap_getEntropy: Readonly<{
        readonly targetName: "snap_getEntropy";
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.RestrictedMethod, {
            allowedCaveats?: readonly [string, ...string[]] | null | undefined;
            methodHooks: GetEntropyHooks;
        }, {
            permissionType: import("@metamask/permission-controller").PermissionType.RestrictedMethod;
            targetName: "snap_getEntropy";
            methodImplementation: (options: import("@metamask/permission-controller").RestrictedMethodOptions<import("@metamask/snaps-sdk").GetEntropyParams>) => Promise<`0x${string}`>;
            allowedCaveats: readonly [string, ...string[]] | null;
        }>;
        readonly methodHooks: import("../utils.mjs").MethodHooksObject<GetEntropyHooks>;
    }>;
    readonly wallet_snap: Readonly<{
        readonly targetName: "wallet_snap";
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.RestrictedMethod, {
            allowedCaveats?: readonly [string, ...string[]] | null | undefined;
            methodHooks: InvokeSnapMethodHooks;
        }, {
            permissionType: import("@metamask/permission-controller").PermissionType.RestrictedMethod;
            targetName: "wallet_snap";
            methodImplementation: (options: import("@metamask/permission-controller").RestrictedMethodOptions<import("./invokeSnap.mjs").InvokeSnapParams>) => Promise<import("@metamask/utils").Json>;
            allowedCaveats: readonly [string, ...string[]] | null;
            validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
            sideEffect: {
                onPermitted: import("@metamask/permission-controller").SideEffectHandler<import("./invokeSnap.mjs").InstallSnaps | import("./invokeSnap.mjs").GetPermittedSnaps, never>;
            };
        }>;
        readonly methodHooks: import("../utils.mjs").MethodHooksObject<InvokeSnapMethodHooks>;
    }>;
    readonly snap_manageState: Readonly<{
        readonly targetName: "snap_manageState";
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.RestrictedMethod, {
            allowedCaveats?: readonly [string, ...string[]] | null | undefined;
            methodHooks: ManageStateMethodHooks;
        }, {
            permissionType: import("@metamask/permission-controller").PermissionType.RestrictedMethod;
            targetName: "snap_manageState";
            methodImplementation: (options: import("@metamask/permission-controller").RestrictedMethodOptions<import("@metamask/snaps-sdk").ManageStateParams>) => Promise<import("@metamask/snaps-sdk").ManageStateResult>;
            allowedCaveats: readonly [string, ...string[]] | null;
        }>;
        readonly methodHooks: import("../utils.mjs").MethodHooksObject<ManageStateMethodHooks>;
    }>;
    readonly snap_notify: Readonly<{
        readonly targetName: "snap_notify";
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.RestrictedMethod, {
            allowedCaveats?: readonly [string, ...string[]] | null | undefined;
            methodHooks: NotifyMethodHooks;
        }, {
            permissionType: import("@metamask/permission-controller").PermissionType.RestrictedMethod;
            targetName: "snap_notify";
            methodImplementation: (args: import("@metamask/permission-controller").RestrictedMethodOptions<import("@metamask/snaps-sdk").NotifyParams>) => Promise<null>;
            allowedCaveats: readonly [string, ...string[]] | null;
        }>;
        readonly methodHooks: import("../utils.mjs").MethodHooksObject<NotifyMethodHooks>;
    }>;
    readonly snap_manageAccounts: Readonly<{
        readonly targetName: "snap_manageAccounts";
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.RestrictedMethod, {
            allowedCaveats?: readonly [string, ...string[]] | null | undefined;
            methodHooks: ManageAccountsMethodHooks;
        }, {
            permissionType: import("@metamask/permission-controller").PermissionType.RestrictedMethod;
            targetName: "snap_manageAccounts";
            methodImplementation: (options: import("@metamask/permission-controller").RestrictedMethodOptions<import("@metamask/snaps-sdk").ManageAccountsParams>) => Promise<import("@metamask/utils").Json>;
            allowedCaveats: readonly [string, ...string[]] | null;
        }>;
        readonly methodHooks: {
            readonly getSnapKeyring: true;
        };
    }>;
    readonly snap_getLocale: Readonly<{
        readonly targetName: "snap_getLocale";
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.RestrictedMethod, {
            allowedCaveats?: readonly [string, ...string[]] | null | undefined;
            methodHooks: GetLocaleMethodHooks;
        }, {
            permissionType: import("@metamask/permission-controller").PermissionType.RestrictedMethod;
            targetName: "snap_getLocale";
            methodImplementation: (_args: import("@metamask/permission-controller").RestrictedMethodOptions<import("@metamask/permission-controller").RestrictedMethodParameters>) => Promise<string>;
            allowedCaveats: readonly [string, ...string[]] | null;
        }>;
        readonly methodHooks: import("../utils.mjs").MethodHooksObject<GetLocaleMethodHooks>;
    }>;
    readonly snap_getPreferences: Readonly<{
        readonly targetName: "snap_getPreferences";
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.RestrictedMethod, {
            allowedCaveats?: readonly [string, ...string[]] | null | undefined;
            methodHooks: GetPreferencesMethodHooks;
        }, {
            permissionType: import("@metamask/permission-controller").PermissionType.RestrictedMethod;
            targetName: "snap_getPreferences";
            methodImplementation: (_args: import("@metamask/permission-controller").RestrictedMethodOptions<import("@metamask/permission-controller").RestrictedMethodParameters>) => Promise<import("@metamask/snaps-sdk").GetPreferencesResult>;
            allowedCaveats: readonly [string, ...string[]] | null;
        }>;
        readonly methodHooks: import("../utils.mjs").MethodHooksObject<GetPreferencesMethodHooks>;
    }>;
};
export * from "./caveats/index.mjs";
export type { DialogApprovalTypes } from "./dialog.mjs";
export { DIALOG_APPROVAL_TYPES } from "./dialog.mjs";
//# sourceMappingURL=index.d.mts.map