import { Logger } from '@n8n/backend-common'; import { ExecutionsConfig, GlobalConfig } from '@n8n/config'; import type { Redis as SingleNodeClient, Cluster as MultiNodeClient } from 'ioredis'; import { InstanceSettings } from 'n8n-core'; import { RedisClientService } from '../../services/redis-client.service'; import type { PubSub } from './pubsub.types'; import type { McpRelayMessage } from './subscriber.service'; export declare class Publisher { private readonly logger; private readonly redisClientService; private readonly instanceSettings; private readonly executionsConfig; private readonly globalConfig; private readonly client; private readonly commandChannel; private readonly workerResponseChannel; private readonly mcpRelayChannel; constructor(logger: Logger, redisClientService: RedisClientService, instanceSettings: InstanceSettings, executionsConfig: ExecutionsConfig, globalConfig: GlobalConfig); getClient(): SingleNodeClient | MultiNodeClient; shutdown(): void; publishCommand(msg: PubSub.Command): Promise; publishWorkerResponse(msg: PubSub.WorkerResponse): Promise; publishMcpRelay(msg: McpRelayMessage): Promise; setIfNotExists(key: string, value: string, ttl: number): Promise; set(key: string, value: string, ttl: number): Promise; setExpiration(key: string, ttl: number): Promise; get(key: string): Promise; clear(key: string): Promise; }