import type { AsyncJsonRpcEngineNextCallback, JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine"; import { type CaveatSpecificationConstraint, MethodNames, type PermissionController, type PermissionSpecificationConstraint, type RequestedPermissions } from "@metamask/permission-controller"; import type { Json, JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils"; export declare const requestPermissionsHandler: { methodNames: MethodNames[]; implementation: typeof requestPermissionsImplementation; hookNames: { getAccounts: boolean; requestPermissionsForOrigin: boolean; getCaip25PermissionFromLegacyPermissionsForOrigin: boolean; }; }; type AbstractPermissionController = PermissionController; type GrantedPermissions = Awaited>[0]; /** * Request Permissions implementation to be used in JsonRpcEngine middleware, specifically for `wallet_requestPermissions` RPC method. * The request object is expected to contain a CAIP-25 endowment permission. * * @param req - The JsonRpcEngine request * @param res - The JsonRpcEngine result object * @param _next - JsonRpcEngine next() callback - unused * @param end - JsonRpcEngine end() callback * @param options - Method hooks passed to the method implementation * @param options.getAccounts - A hook that returns the permitted eth accounts for the origin sorted by lastSelected. * @param options.getCaip25PermissionFromLegacyPermissionsForOrigin - A hook that returns a CAIP-25 permission from a legacy `eth_accounts` and `endowment:permitted-chains` permission. * @param options.requestPermissionsForOrigin - A hook that requests CAIP-25 permissions for the origin. * @returns Nothing. */ declare function requestPermissionsImplementation(req: JsonRpcRequest<[RequestedPermissions]> & { origin: string; }, res: PendingJsonRpcResponse, _next: AsyncJsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, { getAccounts, requestPermissionsForOrigin, getCaip25PermissionFromLegacyPermissionsForOrigin, }: { getAccounts: () => string[]; requestPermissionsForOrigin: (requestedPermissions: RequestedPermissions) => Promise<[GrantedPermissions]>; getCaip25PermissionFromLegacyPermissionsForOrigin: (requestedPermissions?: RequestedPermissions) => RequestedPermissions; }): Promise; export {}; //# sourceMappingURL=wallet-requestPermissions.d.mts.map