import type { LifeCycleMethods, PluginCreator } from "./reactotron-core-client"; import NodeWebSocket from "ws"; type BrowserWebSocket = WebSocket; /** * Configuration options for the Reactotron Client. */ export interface ClientOptions extends Omit { /** * A function which returns a websocket. * * This is over-engineered because we need the ability to create different * types of websockets for React Native, React, and NodeJS. :| */ createSocket?: ((path: string) => BrowserWebSocket) | ((path: string) => NodeWebSocket) | null; /** * The hostname or ip address of the server. Default: localhost. */ host?: string | null; /** * The port to connect to the server on. Default: 9090. */ port?: number | null; /** * The name of this client. Usually the app name. */ name?: string; /** * Will we be connecting via SSL? */ secure?: boolean; /** * A list of plugins. */ plugins?: PluginCreator[]; /** * Performs safety checks when serializing. Default: true. * * Will do things like: * - remap falsy values to transport-friendly version * - remove any circular dependencies * - remap functions to something that shows their name * * Hooray for JavaScript! */ safeRecursion?: boolean; /** * Fires when the server sends a command. */ onCommand?: ((command: any) => void) | null; /** * Fires when we connect to the server. */ onConnect?: () => void; /** * Fires when we disconnect from the server. */ onDisconnect?: () => void; /** * The NODE_ENV environment, if any. */ environment?: string; /** * A way for the client libraries to identify themselves. */ client?: Record; /** * Save the client id provided by the server */ setClientId?: (clientId: string) => Promise; /** * Get the client id provided by the server */ getClientId?: (name: string) => Promise; proxyHack?: boolean; } export {};