import { type EntryPointDef, type SmartAccountSigner } from "@alchemy/aa-core"; import { type Address, type Chain, type Hex, type Transport } from "viem"; import type { GetEntryPointForLightAccountVersion, GetLightAccountVersion } from "../types.js"; import { type CreateLightAccountBaseParams, type LightAccountBase } from "./base.js"; export type MultiOwnerLightAccount = GetLightAccountVersion<"MultiOwnerLightAccount">, TEntryPointVersion extends GetEntryPointForLightAccountVersion<"MultiOwnerLightAccount", TLightAccountVersion> = GetEntryPointForLightAccountVersion<"MultiOwnerLightAccount", TLightAccountVersion>> = LightAccountBase & { encodeUpdateOwners: (ownersToAdd: Address[], ownersToRemove: Address[]) => Hex; getOwnerAddresses: () => Promise; }; export type CreateMultiOwnerLightAccountParams = GetLightAccountVersion<"MultiOwnerLightAccount">, TEntryPointVersion extends GetEntryPointForLightAccountVersion<"MultiOwnerLightAccount", TLightAccountVersion> = GetEntryPointForLightAccountVersion<"MultiOwnerLightAccount", TLightAccountVersion>> = Omit, "getAccountInitCode" | "entryPoint" | "version" | "abi" | "accountAddress"> & { salt?: bigint; initCode?: Hex; accountAddress?: Address; factoryAddress?: Address; version?: TLightAccountVersion; entryPoint?: EntryPointDef; owners?: Address[]; }; export declare function createMultiOwnerLightAccount = GetLightAccountVersion<"MultiOwnerLightAccount">, TEntryPointVersion extends GetEntryPointForLightAccountVersion<"MultiOwnerLightAccount", TLightAccountVersion> = GetEntryPointForLightAccountVersion<"MultiOwnerLightAccount", TLightAccountVersion>>(config: CreateMultiOwnerLightAccountParams): Promise>;