import { AmplifyChannel, AmplifyEventData, EventDataMap, HubCallback, HubPayload, StopListenerCallback } from './types'; export declare const AMPLIFY_SYMBOL: symbol; export declare class HubClass { name: string; private listeners; protectedChannels: string[]; constructor(name: string); /** * Used internally to remove a Hub listener. * * @remarks * This private method is for internal use only. Instead of calling Hub.remove, call the result of Hub.listen. */ private _remove; /** * Used to send a Hub event. * * @param channel - The channel on which the event will be broadcast * @param payload - The HubPayload * @param source - The source of the event; defaults to '' * @param ampSymbol - Symbol used to determine if the event is dispatched internally on a protected channel * */ dispatch(channel: Channel, payload: HubPayload, source?: string, ampSymbol?: symbol): void; dispatch(channel: string, payload: HubPayload, source?: string, ampSymbol?: symbol): void; /** * Used to listen for Hub events. * * @param channel - The channel on which to listen * @param callback - The callback to execute when an event is received on the specified channel * @param listenerName - The name of the listener; defaults to 'noname' * @returns A function which can be called to cancel the listener. * */ listen(channel: Channel, callback: HubCallback, listenerName?: string): StopListenerCallback; listen(channel: string, callback: HubCallback, listenerName?: string): StopListenerCallback; private _toListeners; } export declare const Hub: HubClass; /** * @internal * * Internal hub used for core Amplify functionality. Not intended for use outside of Amplify. * */ export declare const HubInternal: HubClass;