import type { KernelValidator } from "@zerodev/sdk"; import type { Action, EntryPointType, GetKernelVersion, PluginValidityData } from "@zerodev/sdk/types"; import type { Address, Hex, LocalAccount } from "viem"; import type { EntryPointVersion } from "viem/account-abstraction"; import type { SignAuthorizationReturnType } from "viem/accounts"; import type { PolicyFlags } from "./constants.js"; import type { CallPolicyParams, GasPolicyParams, RateLimitPolicyParams, SignatureCallerPolicyParams, SudoPolicyParams, TimestampPolicyParams } from "./policies/index.js"; export type PermissionPlugin = KernelValidator<"PermissionValidator"> & { getPluginSerializationParams: () => PermissionData; }; export type ModularSignerParams = { signerContractAddress?: Address; }; export type PolicyParams = { policyAddress?: Address; policyFlag?: PolicyFlags; }; export type ModularSigner = { account: LocalAccount; signerContractAddress: Address; getSignerData: () => Hex; getDummySignature: () => Hex; }; export type Policy = { getPolicyData: () => Hex; getPolicyInfoInBytes: () => Hex; policyParams: (CallPolicyParams & { type: "call"; }) | (GasPolicyParams & { type: "gas"; }) | (RateLimitPolicyParams & { type: "rate-limit"; }) | (SignatureCallerPolicyParams & { type: "signature-caller"; }) | (SudoPolicyParams & { type: "sudo"; }) | (TimestampPolicyParams & { type: "timestamp"; }); }; export type PermissionPluginParams = { signer: ModularSigner; policies: Policy[]; entryPoint: EntryPointType; kernelVersion: GetKernelVersion; flag?: PolicyFlags; permissionId?: Hex; }; export interface PermissionData { policies?: Policy[]; permissionId?: Hex; } export type ExportPermissionAccountParams = { initCode: Hex; accountAddress: Address; }; export type PermissionAccountParams = { permissionParams: PermissionData; action: Action; validityData: PluginValidityData; accountParams: ExportPermissionAccountParams; enableSignature?: Hex; privateKey?: Hex; eip7702Auth?: SignAuthorizationReturnType; isPreInstalled?: boolean; }; //# sourceMappingURL=types.d.ts.map