import { c as Address } from "../../abi-Bjd7pZee.mjs"; import { r as Hex } from "../../misc-BASHpEmW.mjs"; import { ExecutionAction } from "./delegation-types.mjs"; //#region extensions/crypto/src/services/advanced-permissions.d.ts interface GrantedPermission { context: Hex; signerMeta: { delegationManager: Address; [key: string]: unknown; }; [key: string]: unknown; } interface PermissionRequest { chainId: number; expiry: number; sessionAccountAddress: Address; permission: NativeTokenPermission | Erc20TokenPermission; } interface NativeTokenPermission { type: 'native-token-transfer'; data: { maxAmount: bigint; }; } interface Erc20TokenPermission { type: 'erc20-token-periodic'; data: { tokenAddress: Address; periodAmount: bigint; periodDuration: number; justification?: string; }; } declare function storeGrantedPermissions(policyId: string, permissions: GrantedPermission[]): void; declare function getGrantedPermissions(policyId: string): GrantedPermission[] | null; declare function clearGrantedPermissions(policyId: string): void; /** Get the DelegationManager address for a chain from the SDK. */ declare function getSdkDelegationManager(chainId: number): Address; /** * Build the redeemDelegations calldata using the SDK. * This encodes the permissionsContext + execution into the correct * format for the DelegationManager. * * The caller sends this as a raw transaction (to: DelegationManager, data: calldata). */ declare function buildRedeemCalldata(permissionsContext: Hex, action: ExecutionAction): Hex; /** * Check if Advanced Permissions are available for a wallet. * Returns true if: * 1. The wallet is connected via WalletConnect or MetaMask provider * 2. The wallet has an EIP-7702 designation (smart account) * 3. There are stored granted permissions */ declare function hasAdvancedPermissions(policyId: string): boolean; /** * Get the permission context + DelegationManager address for a policy. * Returns null if no permissions are stored. */ declare function getPermissionContext(policyId: string): { context: Hex; delegationManager: Address; } | null; //#endregion export { GrantedPermission, PermissionRequest, buildRedeemCalldata, clearGrantedPermissions, getGrantedPermissions, getPermissionContext, getSdkDelegationManager, hasAdvancedPermissions, storeGrantedPermissions }; //# sourceMappingURL=advanced-permissions.d.mts.map