import { Accessor } from 'solid-js';
import { ConfigurableWindow } from '../_configurable.js';

interface UseBroadcastChannelOptions extends ConfigurableWindow {
    /**
     * The name of the channel.
     */
    name: string;
}
/**
 * Reactive BroadcastChannel.
 *
 * @see https://solidjs-use.github.io/solidjs-use/core/useBroadcastChannel
 */
declare const useBroadcastChannel: <D, P>(options: UseBroadcastChannelOptions) => UseBroadcastChannelReturn<D, P>;
interface UseBroadcastChannelReturn<D, P> {
    isSupported: Accessor<boolean>;
    channel: Accessor<BroadcastChannel | undefined>;
    data: Accessor<D>;
    post: (data: P) => void;
    close: () => void;
    error: Accessor<Event | null | undefined>;
    isClosed: Accessor<boolean>;
}

export { UseBroadcastChannelOptions, UseBroadcastChannelReturn, useBroadcastChannel };