import type { InstanceAiAdminSettingsResponse, InstanceAiAdminSettingsUpdateRequest, InstanceAiUserPreferencesResponse, InstanceAiUserPreferencesUpdateRequest, InstanceAiProviderConnection, InstanceAiPermissions, InstanceAiSandboxProvider } from '@n8n/api-types';
import { GlobalConfig } from '@n8n/config';
import { DbLockService, SettingsRepository, UserRepository } from '@n8n/db';
import type { User } from '@n8n/db';
import type { ModelConfig } from '@n8n/instance-ai';
import { CredentialsFinderService } from '../../credentials/credentials-finder.service';
import { CredentialsService } from '../../credentials/credentials.service';
import { InstanceCredentialBroker, type InstanceCredentialUse } from '../../credentials/instance-credential-broker';
import { EventService } from '../../events/event.service';
import { AiService } from '../../services/ai.service';
import { UserService } from '../../services/user.service';
export interface InstanceAiSandboxStatus {
    enabled: boolean;
    provider: InstanceAiSandboxProvider;
    workflowBuilderAvailable: boolean;
    unavailableReason: string | null;
}
export declare const INSTANCE_AI_MODEL_CREDENTIAL_POLICY: InstanceCredentialUse;
export declare const INSTANCE_AI_DAYTONA_CREDENTIAL_POLICY: InstanceCredentialUse;
export declare const INSTANCE_AI_N8N_SANDBOX_CREDENTIAL_POLICY: InstanceCredentialUse;
export declare const INSTANCE_AI_SEARCH_CREDENTIAL_POLICY: InstanceCredentialUse;
export declare class InstanceAiSettingsService {
    private readonly dbLockService;
    private readonly settingsRepository;
    private readonly userRepository;
    private readonly userService;
    private readonly aiService;
    private readonly credentialsService;
    private readonly credentialsFinderService;
    private readonly instanceCredentialBroker;
    private readonly eventService;
    private readonly config;
    private readonly deploymentConfig;
    private readonly environmentSandboxProvider;
    private sandboxProviderOverride?;
    private enabled;
    private mcpAccessEnabled;
    private permissions;
    private adminModelName;
    constructor(globalConfig: GlobalConfig, dbLockService: DbLockService, settingsRepository: SettingsRepository, userRepository: UserRepository, userService: UserService, aiService: AiService, credentialsService: CredentialsService, credentialsFinderService: CredentialsFinderService, instanceCredentialBroker: InstanceCredentialBroker, eventService: EventService);
    private get isCloud();
    isProxyEnabled(): boolean;
    loadFromDb(): Promise<void>;
    getAdminSettings(): Promise<InstanceAiAdminSettingsResponse>;
    private buildAdminSettingsResponse;
    updateAdminSettings(update: InstanceAiAdminSettingsUpdateRequest, user?: User): Promise<InstanceAiAdminSettingsResponse>;
    private rejectConnectionConflicts;
    private upsertConnection;
    private prepareConnection;
    private prepareSandboxConnection;
    private runConnectionHooks;
    private upsertSandboxConnection;
    reloadFromDb(): Promise<void>;
    getUserPreferences(user: User): Promise<InstanceAiUserPreferencesResponse>;
    updateUserPreferences(user: User, update: InstanceAiUserPreferencesUpdateRequest): Promise<InstanceAiUserPreferencesResponse>;
    listInstanceModelCredentials(): Promise<InstanceAiProviderConnection[]>;
    listInstanceServiceCredentials(): Promise<InstanceAiProviderConnection[]>;
    resolveDaytonaConfig(): Promise<{
        apiUrl?: string;
        apiKey?: string;
    }>;
    resolveN8nSandboxConfig(): Promise<{
        serviceUrl?: string;
        apiKey?: string;
    }>;
    resolveSearchConfig(): Promise<{
        braveApiKey?: string;
        searxngUrl?: string;
    }>;
    private validateAssignedServiceCredential;
    private resolveServiceCredential;
    private warnCredentialFallback;
    getPermissions(): InstanceAiPermissions;
    isMcpAccessEnabled(): boolean;
    isLocalGatewayDisabledForUser(userId: string): Promise<boolean>;
    isAgentEnabled(): boolean;
    isLocalGatewayDisabled(): boolean;
    isBrowserUseEnabled(): boolean;
    getSandboxStatus(): InstanceAiSandboxStatus;
    isInstanceAiEnabled(): boolean;
    resolveModelName(user: User): string;
    resolveModelConfig(user: User): Promise<ModelConfig>;
    private resolveAdminModelConfig;
    private buildModelConfigFromCredential;
    private buildModelConfig;
    private static readonly MANAGED_ADMIN_FIELDS;
    private static readonly INSTANCE_CREDENTIAL_FIELDS;
    private static readonly MANAGED_PREFERENCE_FIELDS;
    private deploymentLabel;
    private rejectManagedFields;
    private validateAdminSettingsUpdate;
    private getSandboxUnavailableReason;
    private envVarModelConfig;
    private envVarModelConfigForModel;
    private extractModelName;
    private applyAdminSettings;
    private readUserPreferences;
    private snapshotAdminSettings;
    private mergeAdminSettings;
    private readPersistedAdminSettings;
    private withPersistedAdminSettings;
    private readAdminModelSelection;
    private parsePersistedAdminSettings;
    private emitSettingsUpdated;
}
