import type { PublisherProvider, Subscription, SubscriptorProvider, ToolbarType } from '../ricos-types/index.js';
type Topics = [
    'ricos.plugins.functionality.pluginAddSuccess',
    'ricos.plugins.functionality.pluginAdd',
    'ricos.plugins.functionality.pluginDelete',
    'ricos.plugins.functionality.pluginToolbarButtonClick',
    'ricos.plugins.functionality.pluginPopoverClick',
    'ricos.plugins.functionality.pluginPopoverTabSwitch',
    'ricos.plugins.functionality.pluginPopoverSearch',
    'ricos.plugins.functionality.pluginChangeSettings',
    'ricos.plugins.functionality.pluginLinkable',
    'ricos.plugins.functionality.mediaPluginsDetails',
    'ricos.plugins.table.addColumnRow',
    'ricos.plugins.table.deleteColumnRow',
    'ricos.plugins.table.contextMenuClick',
    'ricos.plugins.table.contextMenuOptionClick',
    'ricos.plugins.sideEffect.layoutShift',
    'ricos.plugins.functionality.modalAction',
    'ricos.toolbars.functionality.buttonClick'
];
declare const LAYOUT_SHIFT_TOPIC = "ricos.plugins.sideEffect.layoutShift";
export type IPluginsEvents = PluginsEvents;
export declare class PluginsEvents {
    publishers: PublisherProvider<Topics>;
    subscriptors: SubscriptorProvider<[typeof LAYOUT_SHIFT_TOPIC]>;
    topicsToPublish: Topics;
    topicsToSubscribe: string[];
    publishPluginAddSuccess({ pluginId, params }: {
        pluginId: string;
        params?: Record<string, any>;
    }): boolean;
    publishPluginAdd({ pluginId, entryPoint }: {
        pluginId: string;
        entryPoint: string;
    }): boolean;
    publishPluginDelete({ pluginId }: {
        pluginId: string;
    }): boolean;
    publishPluginToolbarClick({ pluginId, buttonName, value, nodeId, type }: {
        pluginId: string;
        buttonName: string;
        nodeId: string;
        value?: string;
        type?: ToolbarType;
    }): boolean;
    publishPluginPopoverClick({ pluginId, buttonName }: {
        pluginId: string;
        buttonName: string;
    }): boolean;
    publishPluginPopoverTabSwitch({ pluginId, buttonName }: {
        pluginId: string;
        buttonName: string;
    }): boolean;
    publishPluginPopoverSearch({ pluginId, searchTerm }: {
        pluginId: string;
        searchTerm: string;
    }): boolean;
    publishPluginChangeSettings({ pluginId, nodeId, actionName, value }: {
        pluginId: string;
        nodeId: string;
        actionName: string;
        value: string;
    }): boolean;
    publishPluginLinkable({ pluginId, nodeId, category, link, nofollow, noreferrer, newTab, anchor }: {
        pluginId: string;
        nodeId: string;
        link?: string;
        category?: string;
        nofollow?: boolean;
        noreferrer?: boolean;
        newTab?: boolean;
        anchor?: string;
    }): boolean;
    publishModalAction({ pluginId, actionName, value, modalSessionId, modalId, actionNumber, initialSelection, style }: {
        pluginId: string;
        actionName?: string;
        modalId: string;
        value?: string;
        modalSessionId: string;
        actionNumber: number;
        initialSelection?: string;
        style?: string;
    }): boolean;
    publishTableAddRowCol({ pluginId, nodeId, category, location, source }: {
        pluginId: string;
        nodeId: string;
        category: string;
        location: string;
        source: string;
    }): boolean;
    publishTableContextMenuClick({ pluginId, nodeId }: {
        pluginId: string;
        nodeId: string;
        category: string;
    }): boolean;
    publishTableDeleteColumnRow({ pluginId, nodeId, category }: {
        pluginId: string;
        nodeId: string;
        category: string;
    }): boolean;
    publishTableContextMenuOptionClick({ pluginId, nodeId, category, actionName }: {
        pluginId: string;
        nodeId: string;
        category: string;
        actionName: string;
    }): boolean;
    publishMediaPluginsDetails({ pluginId, nodeId, creator, title, track_duration, type, url }: {
        pluginId: string;
        nodeId: string;
        creator?: string;
        title?: string;
        track_duration?: string;
        type: 'File Upload' | 'Spotify' | 'SoundCloud';
        url: string;
    }): boolean;
    publishPluginLayoutShift({ nodeId }: {
        nodeId: string;
    }): boolean;
    onPluginLayoutShift(callback: () => void): Subscription;
}
export {};
//# sourceMappingURL=plugins-events.d.ts.map