import { Repository } from 'typeorm';
import { CreateSettingDto } from '../dtos/create-setting.dto';
import { GetMcpUrlDto } from '../dtos/get-mcp-url.dto';
import { User } from '../entities/user.entity';
import { SettingRepository } from '../repository/setting.repository';
import { IFileService, IStoragePathBuilder } from './file';
import { Setting } from '../entities/setting.entity';
import { RequestContextService } from './request-context.service';
import { SolidRegistry } from '../helpers/solid-registry';
import { AdminSettingsResponse, NoInfer, SettingDefinition } from '../interfaces';
import { ModuleMetadataRepository } from '../repository/module-metadata.repository';
export declare class SettingService {
    readonly fileService: IFileService;
    readonly pathBuilder: IStoragePathBuilder;
    readonly solidRegistry: SolidRegistry;
    readonly repo: SettingRepository;
    readonly moduleMetadataRepo: ModuleMetadataRepository;
    private readonly requestContextService;
    private readonly userRepository;
    private readonly _logger;
    private settings;
    private settingsByKey;
    private readonly encryptionService;
    private readonly arrayKeysToSkip;
    constructor(fileService: IFileService, pathBuilder: IStoragePathBuilder, solidRegistry: SolidRegistry, repo: SettingRepository, moduleMetadataRepo: ModuleMetadataRepository, requestContextService: RequestContextService, userRepository: Repository<User>);
    private getSettingsFromDb;
    private parseSettingValue;
    private buildSettingLabel;
    private inferControlType;
    private toAdminSettingDefinition;
    private getAllSettingsFromProviders;
    getAllSettings(): SettingDefinition[];
    updateSettingsCache(): Promise<void>;
    private isDisallowedSettingKey;
    seedSystemAdminEditableAndAboveSettings(): Promise<void>;
    getNonEncryptedSystemAdminReadonlyAndAboveSettings(): Promise<AdminSettingsResponse>;
    updateSettings(settings?: CreateSettingDto[], uploadedFiles?: Array<Express.Multer.File>): Promise<Setting[]>;
    getConfigValue<T = never>(settingKey: NoInfer<T>): any;
    getMcpUrl(getMcpUrlDto: GetMcpUrlDto, solidRequestContext?: any): Promise<any>;
}
//# sourceMappingURL=setting.service.d.ts.map