import { Logger } from '@n8n/backend-common';
import { InstanceSettingsConfig } from '@n8n/config';
import type { InstanceRole, InstanceType } from '@n8n/constants';
interface WritableSettings {
    tunnelSubdomain?: string;
    fsStorageMigrated?: boolean;
}
export declare class InstanceSettings {
    private readonly config;
    private readonly logger;
    readonly n8nFolder: string;
    readonly staticCacheDir: string;
    readonly customExtensionDir: string;
    readonly nodesDownloadDir: string;
    readonly nodeDefinitionsDir: string;
    private readonly settingsFile;
    readonly enforceSettingsFilePermissions: {
        isSet: boolean;
        enforce: boolean;
    };
    private settings;
    readonly instanceId: string;
    readonly hmacSignatureSecret: string;
    readonly instanceType: InstanceType;
    constructor(config: InstanceSettingsConfig, logger: Logger);
    instanceRole: InstanceRole;
    readonly hostId: string;
    private isMultiMainEnabled;
    private isMultiMainLicensed;
    setMultiMainEnabled(newState: boolean): void;
    setMultiMainLicensed(newState: boolean): void;
    get isMultiMain(): boolean;
    get isSingleMain(): boolean;
    get isWorker(): boolean;
    get isLeader(): boolean;
    markAsLeader(): void;
    get isFollower(): boolean;
    markAsFollower(): void;
    get encryptionKey(): string;
    get tunnelSubdomain(): string | undefined;
    get fsStorageMigrated(): boolean;
    markFsStorageMigrated(): void;
    get isDocker(): boolean;
    update(newSettings: WritableSettings): void;
    private loadOrCreate;
    private generateInstanceId;
    private getOrGenerateHmacSignatureSecret;
    private save;
    private loadEnforceSettingsFilePermissionsFlag;
    private ensureSettingsFilePermissions;
    private isWindows;
}
export {};
