import { type SmartAccountSigner, type UserOperationRequest } from "@alchemy/aa-core"; import { type Chain, type Hex, type Address } from "viem"; export declare enum ValidatorMode { sudo = "0x00000000", plugin = "0x00000001", enable = "0x00000002" } export interface KernelBaseValidatorParams { projectId: string; validatorAddress?: Hex; mode?: ValidatorMode; chain?: Chain; entryPointAddress?: Address; enableSignature?: Hex; validUntil?: number; validAfter?: number; executor?: Address; selector?: string; } export declare abstract class KernelBaseValidator { readonly validatorAddress: Hex; mode: ValidatorMode; protected projectId: string; protected chain?: Chain; protected entryPointAddress: Address; protected enableSignature?: Hex; protected validUntil: number; protected validAfter: number; protected executor?: Address; protected selector?: string; constructor(params: KernelBaseValidatorParams); abstract encodeEnable(enableData: Hex): Hex; abstract encodeDisable(enableData: Hex): Hex; abstract getEnableData(): Promise; abstract signMessage(message: Uint8Array | string | Hex): Promise; abstract signUserOp(userOp: UserOperationRequest): Promise; abstract signer(): Promise; setEnableSignature(enableSignature: Hex): void; getAddress(): Hex; approveExecutor(kernel: string, selector: string, executor: string, validUntil: number, validAfter: number, validator: KernelBaseValidator): Promise; resolveValidatorMode(userOp: UserOperationRequest): Promise; getSignature(userOp: UserOperationRequest): Promise; } //# sourceMappingURL=base.d.ts.map