import * as zustand from 'zustand'; import { Platform } from '@consolelabs/mochi-ui'; import { Profile } from '@consolelabs/mochi-rest'; import { ChainProvider } from '@mochi-web3/connect-wallet-widget'; declare const STORAGE_KEY: "mochi.token"; type EventName = 'login' | 'update_wallets' | 'logout' | 'refresh'; type ActionCreator = { type: E; payload: P; }; type Action = ActionCreator<'login', { profile: Profile; addresses: string[]; chain: string; provider?: ChainProvider | null; isInstallChecker?: (chain: string) => Promise; token: string; }> | ActionCreator<'update_wallets', { addresses: string[]; chain: string; provider?: ChainProvider | null; isInstallChecker?: (chain: string) => Promise; }> | ActionCreator<'logout'> | ActionCreator<'refresh'>; type Payload = Extract['payload']; type Wallet = { address: string; connectionStatus: 'connected' | 'disconnected' | 'not_installed'; providers: ChainProvider[]; }; type LoginWidgetState = { isLoggedIn: boolean; isLoggingIn: boolean; setIsLoggingIn: (b: boolean) => void; isLoadingProfile: boolean; setIsLoadingProfile: (b: boolean) => void; wallets: Array; profile: Profile | null; token: string; getProviderByAddress: (address: string) => ChainProvider | null; isAddressConnected: (address: string) => boolean; dispatch: (action: Action) => void; setupSocials: (params: { telegramBotId: string; profileBaseUrl: string; allowedSocials: Platform[]; }) => void; socials: { id?: string; name: string; icon: JSX.Element; disabled: boolean; onClick?: (urlLocation: string) => Promise; }[]; profileBaseUrl: string; }; declare const useLoginWidget: zustand.UseBoundStore>; declare const usePublicLoginWidget: () => { isLoggedIn: boolean; isLoggingIn: boolean; isLoadingProfile: boolean; wallets: Wallet[]; profile: { type: "user"; id: string; pnl: string; associated_accounts: { id: string; profile_id: string; created_at: string; updated_at: string; platform: "email" | "evm-chain" | "solana-chain" | "ronin-chain" | "sui-chain" | "discord" | "telegram" | "twitter" | "facebook" | "aptos-chain" | "near-chain" | "binance"; platform_identifier: string; platform_metadata: { ens?: string | undefined; sns?: string | undefined; username?: string | undefined; }; total_amount: string; pnl: string; }[] | null; profile_name: string; avatar: string; application?: null | undefined; } | { type: "application"; id: string; pnl: string; associated_accounts: [] | null; profile_name: string; avatar: string; application: { id: number; name: string; owner_profile_id: string; service_fee: number; }; } | { type: "vault"; id: string; pnl: string; associated_accounts: null; profile_name: string; avatar: string; application?: null | undefined; } | null; token: string; getProviderByAddress: (address: string) => ChainProvider | null; isAddressConnected: (address: string) => boolean; login: (payload: Payload<'login'>) => void; update: (payload: Payload<'update_wallets'>) => void; refresh: () => void; logout: () => void; socials: { id?: string | undefined; name: string; icon: JSX.Element; disabled: boolean; onClick?: ((urlLocation: string) => Promise) | undefined; }[]; }; declare const getLoginWidgetState: () => { login: (payload: Payload<'login'>) => void; update: (payload: Payload<'update_wallets'>) => void; refresh: () => void; logout: () => void; isLoggedIn: boolean; isLoggingIn: boolean; setIsLoggingIn: (b: boolean) => void; isLoadingProfile: boolean; setIsLoadingProfile: (b: boolean) => void; wallets: Array; profile: Profile | null; token: string; getProviderByAddress: (address: string) => ChainProvider | null; isAddressConnected: (address: string) => boolean; setupSocials: (params: { telegramBotId: string; profileBaseUrl: string; allowedSocials: Platform[]; }) => void; socials: { id?: string | undefined; name: string; icon: JSX.Element; disabled: boolean; onClick?: ((urlLocation: string) => Promise) | undefined; }[]; profileBaseUrl: string; }; export { Action, LoginWidgetState, STORAGE_KEY, Wallet, getLoginWidgetState, useLoginWidget, usePublicLoginWidget };