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; getAdminSettings(): Promise; private buildAdminSettingsResponse; updateAdminSettings(update: InstanceAiAdminSettingsUpdateRequest, user?: User): Promise; private rejectConnectionConflicts; private upsertConnection; private prepareConnection; private prepareSandboxConnection; private runConnectionHooks; private upsertSandboxConnection; reloadFromDb(): Promise; getUserPreferences(user: User): Promise; updateUserPreferences(user: User, update: InstanceAiUserPreferencesUpdateRequest): Promise; listInstanceModelCredentials(): Promise; listInstanceServiceCredentials(): Promise; 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; isAgentEnabled(): boolean; isLocalGatewayDisabled(): boolean; isBrowserUseEnabled(): boolean; getSandboxStatus(): InstanceAiSandboxStatus; isInstanceAiEnabled(): boolean; resolveModelName(user: User): string; resolveModelConfig(user: User): Promise; 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; }