import type { EvmNetwork, GenericNetwork } from '@dynamic-labs/types'; import { ClientManifest } from '@dynamic-labs/webview-messages'; import { Extendable } from '../utils/Extendable'; export declare const baseClientExtensionName = "base"; export type BaseClient = ReturnType; export type ClientProps = { environmentId: string; apiBaseUrl?: string; appName?: string; appLogoUrl?: string; cssOverrides?: string; evmNetworks?: EvmNetwork[]; /** * Overrides for Bitcoin networks. When provided, merges with the dashboard * networks (custom entries win on chainId conflicts). */ bitcoinNetworks?: GenericNetwork[]; /** * Overrides for Solana networks. See `bitcoinNetworks` for merge semantics. */ solNetworks?: GenericNetwork[]; /** * Overrides for TON networks. See `bitcoinNetworks` for merge semantics. */ tonNetworks?: GenericNetwork[]; debug?: ClientManifest['debug']; globalWallets?: ClientManifest['globalWallets']; locale?: ClientManifest['locale']; /** * If true, enables connect-only mode where users can connect wallets * without signing a message. This is useful for React Native apps where * you want to allow wallet connections without full authentication. */ connectOnly?: boolean; /** * Controls the device registration modal behavior. * When set to { enabled: false }, the SDK will not automatically show the * device registration modal. * @default { enabled: true } */ deviceRegistrationModal?: { enabled: boolean; }; /** * Controls the legacy embedded wallet migration modal behavior. * When set to { autoOpen: false }, the SDK will not automatically open the * forced migration modal when a legacy Turnkey wallet is detected on a * project whose default wallet version is V3. Headless consumers that build * their own migration UI (and call * `client.wallets.embedded.upgradeToDynamicWaas`) should disable it. * @default { autoOpen: true } */ legacyWalletMigrationModal?: { autoOpen: boolean; }; /** * If true, use MetaMask SDK for MetaMask connections. * If false, use WalletConnect for MetaMask connections. * Only applies to mobile platforms (React Native, Flutter, Swift). * @default true */ useMetamaskSdk?: boolean; }; /** * Generates a basic client that allows interacting with Dynamic's SDK, which * will be rendered inside a webview. * * It must be extended with the necessary Extensions that implement the services * it will be used for. */ export declare const createClient: (props: ClientProps) => { /** Module that gives access over authentication state, such as the auth token and user */ auth: import("../modules/authModule").AuthModule; /** Module for Bitcoin-specific operations (sign, PSBT, send, balance) */ bitcoin: import("../modules/bitcoinModule").BitcoinModule; /** Module that provides access to device registration features */ deviceRegistration: import("../modules/deviceRegistrationModule").DeviceRegistrationModule; /** Module that provides locale/translation features */ locale: { changeLanguage: (lang: import("dist/packages/locale/src").Lang) => Promise; }; /** Module that provides access to MFA features */ mfa: import("../modules/mfaModule").MfaModule; /** Module that provides all the networks configured */ networks: import("@dynamic-labs/message-transport").StoreStateGetters & import("@dynamic-labs/message-transport").PickedEventListeners>; /** Module that provides access to passkeys */ passkeys: { authenticateMFA: (props?: { createMfaToken?: import("@dynamic-labs/sdk-api-core").CreateMfaToken | undefined; relatedOriginRpId?: string | undefined; } | undefined) => Promise; delete: (props: { passkeyId: string; }) => Promise; get: () => Promise; register: () => Promise; }; /** Module that gives insight over the state of the SDK */ sdk: import("../modules/sdkModule").SdkModule; /** Module for Stellar-specific operations (sign, send, trustline, balance, network) */ stellar: import("../modules/stellarModule").StellarModule; /** Module that provides access to step-up authentication features */ stepUpAuth: import("../modules/stepUpAuthModule").StepUpAuthModule; /** Module for TON-specific operations (sign, send TON, Jettons, balance, network) */ ton: import("../modules/tonModule").TonModule; /** Module that provide access to UI features */ ui: import("../modules/userInterfaceModule/userInterfaceModule").UserInterfaceModule; /** Module that provides access to user's wallets */ wallets: import("../modules/walletsModule").WalletsModule; } & Extendable;