import { type EmbeddedAccount, type Openfort, type User } from '@openfort/openfort-js'; import { type Dispatch, type MutableRefObject, type SetStateAction } from 'react'; import type { StoreApi } from 'zustand/vanilla'; import type { OpenfortStore } from '../store'; type Params = { openfort: Openfort; storeEmbeddedState: OpenfortStore['embeddedState']; storeUser: OpenfortStore['user']; store: StoreApi; updateUserRef: MutableRefObject<(user?: User, logoutOnError?: boolean) => Promise>; fetchEmbeddedAccountsRef: MutableRefObject<(options?: { silent?: boolean; }) => Promise>; }; type Result = { isConnectedWithEmbeddedSigner: boolean; setIsConnectedWithEmbeddedSigner: Dispatch>; connectingRef: MutableRefObject; }; /** * Reacts to embedded state transitions and performs the appropriate side effects: * * - UNAUTHENTICATED → clears the store user * - EMBEDDED_SIGNER_NOT_CONFIGURED → resets connect state, validates token, fetches accounts * - READY → polls until user is confirmed in the store * * Returns `isConnectedWithEmbeddedSigner`, its setter, and `connectingRef` so that * the bridge-connect effect and `logout` in CoreOpenfortProvider can share them. */ export declare function useEmbeddedStateMachine({ openfort, storeEmbeddedState, storeUser, store, updateUserRef, fetchEmbeddedAccountsRef, }: Params): Result; export {};