import type { AppFeeBalances, SplitIntentsInput, SplitIntentsResult } from '../clients/orchestrator/public.js'; import type { RhinestoneAccountConfig, RhinestoneSDKConfig } from '../config/account.js'; import type { Session, SessionDefinition } from '../modules/validators/smart-sessions/types.js'; import type { TransactionStatus } from '../transactions/intents/types.js'; import type { RhinestoneAccount } from './account.js'; /** * Stateful entry point that holds shared configuration (auth, provider, * bundler, paymaster) and creates accounts from it, delegating all work to the * SDK-core composition. */ declare class RhinestoneSDK { #private; private authProvider; private endpointUrl; private provider; private bundler; private paymaster; private useDevContracts; private headers; /** * Create a Rhinestone SDK instance. * @param options Shared configuration applied to every account created by this instance */ constructor(options: RhinestoneSDKConfig); /** * Create an account using this instance's shared configuration. * @param config Per-account configuration (owners, account type, modules, sessions) * @returns The account instance * @example * ```ts * import { RhinestoneSDK } from '@rhinestone/sdk' * import { privateKeyToAccount } from 'viem/accounts' * * const owner = privateKeyToAccount('0x...') * * const sdk = new RhinestoneSDK({ * auth: { mode: 'apiKey', apiKey: process.env.RHINESTONE_API_KEY! }, * }) * * const account = await sdk.createAccount({ * owners: { type: 'ecdsa', accounts: [owner] }, * }) * ``` */ createAccount(config: RhinestoneAccountConfig): Promise; /** * Get the current status of a submitted intent. * @param intentId The intent ID returned when the transaction was submitted * @returns The intent status */ getIntentStatus(intentId: string): Promise; /** * Split a transaction into multiple intents across chains. * @param input The intents to split * @returns The split-intents result */ splitIntents(input: SplitIntentsInput): Promise; /** * Get the integrator's accrued app-fee balance, as USD totals. * * App fees are earned by the integrator identified by this instance's API key * (project-scoped, not tied to any account) and valued in USD at the moment * each fee is collected, so the balance is not affected by later price * movements of the collected tokens. * @returns The withdrawable and pending app-fee balances in USD */ getAppFeeBalances(): Promise; /** * Create a smart session, resolving the chain's wrapped-native token from the * orchestrator's chain catalog (`GET /chains`) so native-token wrapping is * permitted automatically. Project-scoped — needs the API key but no account. * For a fully offline build, use the standalone {@link toSession} and pass * `wrappedNativeToken` yourself. * @param definition The session definition * @returns The resolved session */ createSession(definition: SessionDefinition): Promise; } export { RhinestoneSDK }; //# sourceMappingURL=sdk.d.ts.map