import { ReactNode, Context, FC } from "react"; import { IOConnectBrowser, IOConnectBrowserFactoryFunction } from "@interopio/browser"; import { IOConnectDesktop } from "@interopio/desktop"; import { IOConnectBrowserPlatform, IOConnectBrowserPlatformFactoryFunction } from "@interopio/browser-platform"; export type IOConnectReactConfig = IOConnectBrowser.Config | IOConnectDesktop.Config; export type IOConnectReactFactory = (config?: IOConnectReactConfig) => Promise; type IOConnectDesktopFactory = (config?: IOConnectDesktop.Config) => Promise; export interface IOConnectProviderProps { children: ReactNode; settings: IOConnectInitSettings; fallback?: NonNullable | null; onInitError?: (error: Error) => void; } export interface IOConnectInitSettings { browser?: { config?: IOConnectBrowser.Config; factory?: IOConnectBrowserFactoryFunction; }; browserPlatform?: { config?: IOConnectBrowserPlatform.Config | IOConnectBrowserPlatform.RemoteConfigFromManager; factory?: IOConnectBrowserPlatformFactoryFunction; }; desktop?: { config?: IOConnectDesktop.Config; factory?: IOConnectDesktopFactory; }; } export type UseIOInitFunc = ( settings: IOConnectInitSettings, onInitError?: (error: Error) => void ) => IOConnectBrowser.API | IOConnectDesktop.API; export declare const IOConnectContext: Context; export declare const IOConnectProvider: FC; export declare const useIOConnect: ( cb: (io: K, ...dependencies: any[]) => T | Promise, dependencies?: any[] ) => T; export declare const useIOConnectInit: UseIOInitFunc;