import { Logger } from '@n8n/backend-common';
import { SecretsProviderConnectionRepository } from '@n8n/db';
import { Cipher, type IExternalSecretsManager } from 'n8n-core';
import { type IDataObject, type INodeProperties } from 'n8n-workflow';
import { EventService } from '../../events/event.service';
import { Publisher } from '../../scaling/pubsub/publisher.service';
import { ExternalSecretsProviders } from './external-secrets-providers.ee';
import { ExternalSecretsConfig } from './external-secrets.config';
import { ExternalSecretsProviderLifecycle } from './provider-lifecycle.service';
import { ExternalSecretsProviderRegistry } from './provider-registry.service';
import { ExternalSecretsRetryManager } from './retry-manager.service';
import { ExternalSecretsSecretsCache } from './secrets-cache.service';
import { ExternalSecretsSettingsStore } from './settings-store.service';
import type { SecretsProvider, SecretsProviderSettings } from './types';
export declare class ExternalSecretsManager implements IExternalSecretsManager {
    private readonly logger;
    private readonly config;
    private readonly providersFactory;
    private readonly eventService;
    private readonly publisher;
    private readonly settingsStore;
    private readonly providerRegistry;
    private readonly providerLifecycle;
    private readonly retryManager;
    private readonly secretsCache;
    private readonly secretsProviderConnectionRepository;
    private readonly cipher;
    initialized: boolean;
    private refreshInterval?;
    private initializingPromise?;
    constructor(logger: Logger, config: ExternalSecretsConfig, providersFactory: ExternalSecretsProviders, eventService: EventService, publisher: Publisher, settingsStore: ExternalSecretsSettingsStore, providerRegistry: ExternalSecretsProviderRegistry, providerLifecycle: ExternalSecretsProviderLifecycle, retryManager: ExternalSecretsRetryManager, secretsCache: ExternalSecretsSecretsCache, secretsProviderConnectionRepository: SecretsProviderConnectionRepository, cipher: Cipher);
    init(): Promise<void>;
    shutdown(): void;
    getProvider(provider: string): SecretsProvider | undefined;
    getProviderProperties(providerType: string): INodeProperties[];
    hasProvider(provider: string): boolean;
    getProviderNames(): string[];
    getProvidersWithSettings(): Array<{
        provider: SecretsProvider;
        settings: SecretsProviderSettings;
    }>;
    getProviderWithSettings(provider: string): {
        provider: SecretsProvider;
        settings: SecretsProviderSettings;
    };
    syncProviderConnection(providerKey: string): Promise<void>;
    updateProvider(providerKey: string): Promise<void>;
    getSecret(provider: string, name: string): unknown;
    hasSecret(provider: string, name: string): boolean;
    getSecretNames(provider: string): string[];
    getAllSecretNames(): Record<string, string[]>;
    setProviderSettings(provider: string, settings: IDataObject, userId?: string): Promise<void>;
    setProviderConnected(provider: string, connected: boolean): Promise<void>;
    testProviderSettings(provider: string, data: IDataObject): Promise<{
        readonly success: false;
        readonly testState: "error";
    } | {
        success: boolean;
        testState: string;
        error: string | undefined;
    } | {
        success: boolean;
        testState: "connected" | "tested";
        error?: undefined;
    }>;
    reloadAllProviders(): Promise<void>;
    private reloadProvidersFromConnectionsRepo;
    private setupProvider;
    private connectProvider;
    private reloadProvider;
    private tearDownProviderConnection;
    private decryptSettings;
    updateSecrets(): Promise<void>;
    private startSecretsRefresh;
    private stopSecretsRefresh;
    private broadcastReload;
    private trackProviderSave;
    private getCachedSettings;
}
