import { Logger } from '@n8n/backend-common';
import { InstanceSettings } from 'n8n-core';
import { LoadNodesAndCredentials } from '../../../load-nodes-and-credentials';
import { Push } from '../../../push';
import { Publisher } from '../../../scaling/pubsub/publisher.service';
import { McpRegistryServerRepository } from './mcp-registry-server.repository';
import { McpRegistryApiClient } from './mcp-registry-api.client';
import type { McpRegistryServer } from './mcp-registry.types';
export declare class McpRegistryService {
    private readonly logger;
    private readonly repository;
    private readonly apiClient;
    private readonly instanceSettings;
    private readonly loadNodesAndCredentials;
    private readonly push;
    private readonly publisher;
    private refreshInterval;
    private refreshPromise;
    private isShuttingDown;
    constructor(logger: Logger, repository: McpRegistryServerRepository, apiClient: McpRegistryApiClient, instanceSettings: InstanceSettings, loadNodesAndCredentials: LoadNodesAndCredentials, push: Push, publisher: Publisher);
    init(): Promise<void>;
    onLeaderTakeover(): Promise<void>;
    onLeaderStepdown(): void;
    shutdown(): void;
    handleReloadMcpRegistry(): Promise<void>;
    getAll({ includeDeprecated, }?: {
        includeDeprecated?: boolean;
    }): Promise<McpRegistryServer[]>;
    get(slug: string): Promise<McpRegistryServer | undefined>;
    private startPeriodicRefresh;
    private stopPeriodicRefresh;
    private refreshFromApi;
    private refreshFromApiInternal;
    private refreshUpdatedServers;
    private shouldFetchFullServer;
    private saveServers;
    private refreshRegistryNodeTypes;
    private publishReloadCommand;
    private notifyNodeDescriptionsUpdated;
    private isMainInstance;
}
