import { Logger } from '@n8n/backend-common';
import { GlobalConfig } from '@n8n/config';
import type { User } from '@n8n/db';
import { SettingsRepository, WorkflowRepository } from '@n8n/db';
import { type IWorkflowSettings } from 'n8n-workflow';
import { CollaborationService } from '../../collaboration/collaboration.service';
import { CacheService } from '../../services/cache/cache.service';
import { WorkflowFinderService } from '../../workflows/workflow-finder.service';
import type { UpdateWorkflowsAvailabilityDto } from './dto/update-workflows-availability.dto';
type BulkSetAvailableInMCPResult = {
    updatedCount: number;
    skippedCount: number;
    failedCount: number;
    changedWorkflows: WorkflowMCPAvailabilityChange[];
    updatedIds?: string[];
};
type WorkflowMCPAvailabilityChange = {
    workflowId: string;
    settings: Pick<IWorkflowSettings, 'availableInMCP'>;
    checksum: string;
};
export declare class McpSettingsService {
    private readonly settingsRepository;
    private readonly cacheService;
    private readonly workflowRepository;
    private readonly workflowFinderService;
    private readonly globalConfig;
    private readonly logger;
    private readonly collaborationService;
    constructor(settingsRepository: SettingsRepository, cacheService: CacheService, workflowRepository: WorkflowRepository, workflowFinderService: WorkflowFinderService, globalConfig: GlobalConfig, logger: Logger, collaborationService: CollaborationService);
    getEnabled(): Promise<boolean>;
    setEnabled(enabled: boolean): Promise<void>;
    bulkSetAvailableInMCP(user: User, dto: UpdateWorkflowsAvailabilityDto): Promise<BulkSetAvailableInMCPResult>;
    broadcastWorkflowMCPAvailabilityChanged(changes: WorkflowMCPAvailabilityChange[]): Promise<void>;
    private resolveCandidateIds;
}
export {};
