import type { InstanceRole, InstanceType } from '@n8n/constants';
import type { EventHandler } from '../types';
export type PubSubEventName = 'add-webhooks-triggers-and-pollers' | 'remove-triggers-and-pollers' | 'clear-test-webhooks' | 'display-workflow-activation' | 'display-workflow-deactivation' | 'display-workflow-activation-error' | 'community-package-install' | 'community-package-uninstall' | 'community-package-update' | 'get-worker-status' | 'reload-external-secrets-providers' | 'reload-license' | 'response-to-get-worker-status' | 'restart-event-bus' | 'relay-execution-lifecycle-event';
export type PubSubEventFilter = {
    instanceType: 'main';
    instanceRole?: Omit<InstanceRole, 'unset'>;
} | {
    instanceType: Omit<InstanceType, 'main'>;
    instanceRole?: never;
};
type PubSubEventHandler = EventHandler<PubSubEventName> & {
    filter?: PubSubEventFilter;
};
export declare class PubSubMetadata {
    private readonly handlers;
    register(handler: PubSubEventHandler): void;
    getHandlers(): PubSubEventHandler[];
}
export {};
