import type { Address } from 'abitype'; import type { OneOf } from '../../../types/utils.js'; import type { Policy } from './policy.js'; /** @internal */ export type CustomPermission = { data: data; type: type; }; /** @internal */ export type NativeTokenTransferPermission = { type: 'native-token-transfer'; data: { /** Native token ticker (e.g. ETH). */ ticker: string; }; }; /** @internal */ export type Erc20TokenTransferPermission = { type: 'erc20-token-transfer'; data: { /** ERC20 address. */ address: Address; /** Native token ticker (e.g. ETH). */ ticker: string; }; }; /** @internal */ export type ContractCallPermission = { type: 'contract-call'; data: { /** Contract address. */ address: Address; /** Set of contract signatures to permit. */ calls: string[]; }; }; export type Permission = OneOf & { /** Set of policies for the permission. */ policies: readonly Policy[]; /** Whether or not the wallet must grant the permission. */ required?: boolean | undefined; }; //# sourceMappingURL=permission.d.ts.map