import * as React from "react"; export type BroadcastChannelData = string | number | boolean | Record | undefined | null; /** * React hook to create and manage a Broadcast Channel across multiple browser windows. * * @param channelName Static name of channel used across the browser windows. * @param handleMessage Callback to handle the event generated when `message` is received. * @param handleMessageError [optional] Callback to handle the event generated when `error` is received. * @returns A function to send/post message on the channel. * @example * ```tsx * import {useBroadcastChannel} from 'react-broadcast-channel'; * * function App () { * const postUserIdMessage = useBroadcastChannel('userId', (e) => alert(e.data)); * return (); * } * ``` * --- * Works in browser that support Broadcast Channel API natively. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API#browser_compatibility). * To support other browsers, install and use [broadcastchannel-polyfill](https://www.npmjs.com/package/broadcastchannel-polyfill). */ export declare function useBroadcastChannel(channelName: string, handleMessage?: (event: MessageEvent) => void, handleMessageError?: (event: MessageEvent) => void): (data: T) => void; /** * React hook to manage state across browser windows. Has the similar signature as `React.useState`. * * @param channelName Static name of channel used across the browser windows. * @param initialState Initial state. * @returns Tuple of state and setter for the state. * @example * ```tsx * import {useBroadcastState} from 'react-broadcast-channel'; * * function App () { * const [count, setCount] = useBroadcastState('count', 0); * return ( *
* * {count} * *
* ); * } * ``` * --- * Works in browser that support Broadcast Channel API natively. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API#browser_compatibility). * To support other browsers, install and use [broadcastchannel-polyfill](https://www.npmjs.com/package/broadcastchannel-polyfill). */ export declare function useBroadcastState(channelName: string, initialState: T): [T, React.Dispatch>, boolean];