import { NavigatePayload } from '../../../common/src/utils/navigate';
import { ProviderConnectionPayload, ProviderDisconnectionPayload, ProviderUpdatePayload } from './provider';
/**
 * All Workspace related events that can be emitted or listened to
 * by the Workspace Provider or any of the workspace components
 */
type EventTypeTypes = {
    /**
     * Emitted when a search is invoked.
     */
    'search-invoked': [string];
    /**
     * Emitted when a new provider is connected.
     *
     * For example, when a Dock Provider is successfully registered by the platform provider
     */
    'provider-connected': [ProviderConnectionPayload];
    /**
     * Emitted when a provider is disconnected.
     *
     * For example, when a Dock Provider is deregistered by the platform provider
     */
    'provider-disconnected': [ProviderDisconnectionPayload];
    /**
     * Emitted when a provider is updated.
     *
     * For example, when a Dock Provider is updated by the platform provider
     */
    'provider-updated': [ProviderUpdatePayload];
    /**
     * Emmitted when notifications is created or destroyed.
     */
    'update-notification-running-status': [];
    /**
     * Emitted when the list of search providers has been updated.
     */
    'search-provider-list-updated': [];
    /**
     * Emitted when the list of Storefront VPW providers has been updated.
     */
    'storefront-provider-list-updated': [];
    /**
     * Emmitted when a component is created or destroyed.
     */
    'component-lifecycle-update': [];
    /**
     * Emitted when component should be navigated to.
     * Contains the target provider ID and the component name.
     */
    'component-navigation': [NavigatePayload];
};
export declare const addListener: <EventKey extends keyof EventTypeTypes>(event: EventKey, listener: (...payload: EventTypeTypes[EventKey]) => void) => void, removeListener: <EventKey extends keyof EventTypeTypes>(event: EventKey, listener: (...payload: EventTypeTypes[EventKey]) => void) => void, addListenerWithUUID: (uuid: string) => <EventKey extends keyof EventTypeTypes>(event: EventKey, listener: (...payload: EventTypeTypes[EventKey]) => void) => void, emit: <EventKey extends keyof EventTypeTypes>(event: EventKey, ...payload: EventTypeTypes[EventKey]) => Promise<void>;
export {};
