import type { Address, Chain, HashTypedDataParameters, Hex, SignableMessage, SignedAuthorizationList, TypedData, TypedDataDefinition } from 'viem'; import type { UserOperationReceipt } from 'viem/account-abstraction'; import { walletClientToAccount, wrapParaAccount } from './accounts/walletClient'; import { deployAccountsForOwners } from './actions/deployment'; import { type TransactionResult, type TransactionStatus, type UserOperationResult } from './execution'; import { type BatchPermit2Result, checkERC20AllowanceDirect, getPermit2Address, type MultiChainPermit2Config, type MultiChainPermit2Result, signPermit2Batch, signPermit2Sequential } from './execution/permit2'; import { type IntentRoute, type PreparedTransactionData, type PreparedUserOperationData, type SignedTransactionData, type SignedUserOperationData } from './execution/utils'; import { MULTI_FACTOR_VALIDATOR_ADDRESS, OWNABLE_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS } from './modules'; import { type SessionDetails } from './modules/validators/smart-sessions'; import { type ApprovalRequired, type AuxiliaryFunds, getAllSupportedChainsAndTokens, getSupportedTokens, getTokenAddress, getTokenDecimals, type IntentInput, type IntentOp, type IntentOpStatus, type Portfolio, type SettlementLayer, type SignedIntentOp, type SplitIntentsInput, type SplitIntentsResult, type TokenRequirements, type WrapRequired } from './orchestrator'; import type { AccountProviderConfig, AccountType, BundlerConfig, Call, CallInput, ChainSessionConfig, MultiFactorValidatorConfig, OwnableValidatorConfig, OwnerSet, PaymasterConfig, Permit2ClaimPolicy, Policy, ProviderConfig, Recovery, RhinestoneAccountConfig, RhinestoneConfig, RhinestoneSDKConfig, Session, SignerSet, TokenRequest, TokenSymbol, Transaction, UniversalActionPolicyParamCondition, UserOperationTransaction, WebauthnValidatorConfig } from './types'; interface RhinestoneAccount { config: RhinestoneAccountConfig; deploy: (chain: Chain, params?: { session?: Session; sponsored?: boolean; }) => Promise; isDeployed: (chain: Chain) => Promise; setup: (chain: Chain) => Promise; getInitData(): { factory: Address; factoryData: Hex; }; signEip7702InitData: () => Promise; prepareTransaction: (transaction: Transaction) => Promise; getTransactionMessages: (preparedTransaction: PreparedTransactionData) => { origin: TypedDataDefinition[]; destination: TypedDataDefinition; }; signTransaction: (preparedTransaction: PreparedTransactionData) => Promise; signAuthorizations: (preparedTransaction: PreparedTransactionData) => Promise; signMessage: (message: SignableMessage, chain: Chain, signers: SignerSet | undefined) => Promise; signTypedData: = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(parameters: HashTypedDataParameters, chain: Chain, signers: SignerSet | undefined) => Promise; submitTransaction: (signedTransaction: SignedTransactionData, authorizations?: SignedAuthorizationList, dryRun?: boolean) => Promise; sendTransaction: (transaction: Transaction) => Promise; prepareUserOperation: (transaction: UserOperationTransaction) => Promise; signUserOperation: (preparedUserOperation: PreparedUserOperationData) => Promise; submitUserOperation: (signedUserOperation: SignedUserOperationData) => Promise; sendUserOperation: (transaction: UserOperationTransaction) => Promise; waitForExecution(result: TransactionResult, acceptsPreconfirmations?: boolean): Promise; waitForExecution(result: UserOperationResult, acceptsPreconfirmations?: boolean): Promise; getAddress: () => Address; getPortfolio: (onTestnets?: boolean) => Promise; experimental_getSessionDetails: (sessions: Session[]) => Promise; experimental_isSessionEnabled: (session: Session) => Promise; experimental_signEnableSession: (details: SessionDetails) => Promise; getOwners: (chain: Chain) => Promise<{ accounts: Address[]; threshold: number; } | null>; getValidators: (chain: Chain) => Promise; getExecutors: (chain: Chain) => Promise; checkERC20Allowance: (tokenAddress: Address, chain: Chain) => Promise; } /** * Initialize a Rhinestone account * Note: accounts are deployed onchain only when the first transaction is sent. * @param config Account config (e.g. implementation vendor, owner signers, smart sessions) * @returns account */ declare function createRhinestoneAccount(config: RhinestoneConfig): Promise; declare class RhinestoneSDK { private authProvider; private endpointUrl?; private provider?; private bundler?; private paymaster?; private useDevContracts?; private headers?; constructor(options: RhinestoneSDKConfig); createAccount(config: RhinestoneAccountConfig): Promise; getIntentStatus(intentId: bigint): Promise; splitIntents(input: SplitIntentsInput): Promise; } export { RhinestoneSDK, createRhinestoneAccount, deployAccountsForOwners, walletClientToAccount, wrapParaAccount, OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, getSupportedTokens, getTokenAddress, getTokenDecimals, getAllSupportedChainsAndTokens, checkERC20AllowanceDirect, getPermit2Address, signPermit2Batch, signPermit2Sequential, }; export type { RhinestoneAccount, AccountType, RhinestoneAccountConfig, AccountProviderConfig, ProviderConfig, BundlerConfig, PaymasterConfig, Transaction, TokenSymbol, CallInput, Call, TokenRequest, OwnerSet, OwnableValidatorConfig, WebauthnValidatorConfig, MultiFactorValidatorConfig, SignerSet, ChainSessionConfig, Session, Recovery, Policy, Permit2ClaimPolicy, UniversalActionPolicyParamCondition, PreparedTransactionData, SignedTransactionData, TransactionResult, PreparedUserOperationData, SignedUserOperationData, UserOperationResult, AuxiliaryFunds, IntentInput, IntentOp, IntentOpStatus, IntentRoute, SettlementLayer, SignedIntentOp, SplitIntentsInput, SplitIntentsResult, Portfolio, TokenRequirements, WrapRequired, ApprovalRequired, MultiChainPermit2Config, MultiChainPermit2Result, BatchPermit2Result, }; //# sourceMappingURL=index.d.ts.map