import type { InstanceAiAdminSettingsResponse, InstanceAiAdminSettingsUpdateRequest, InstanceAiConnectionUpdate, 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 { INSTANCE_AI_DAYTONA_CREDENTIAL_POLICY, INSTANCE_AI_N8N_SANDBOX_CREDENTIAL_POLICY, SandboxSettingsService } from '../../services/sandbox-settings.service'; import { UserService } from '../../services/user.service'; export { INSTANCE_AI_DAYTONA_CREDENTIAL_POLICY, INSTANCE_AI_N8N_SANDBOX_CREDENTIAL_POLICY }; export interface InstanceAiSandboxStatus { enabled: boolean; provider: InstanceAiSandboxProvider; workflowBuilderAvailable: boolean; unavailableReason: string | null; } export declare const CREDENTIAL_TO_MODEL_PROVIDER: Record; export declare const INSTANCE_AI_MODEL_CREDENTIAL_POLICY: InstanceCredentialUse; export declare const INSTANCE_AI_SEARCH_CREDENTIAL_POLICY: InstanceCredentialUse; export interface AdminModelSelection { modelCredentialId: string | null; modelName: string | null; } export interface AdminCredentialSelection extends AdminModelSelection { daytonaCredentialId: string | null; n8nSandboxCredentialId: string | null; searchCredentialId: string | null; } 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 sandboxSettingsService; private readonly eventService; private readonly config; private readonly deploymentConfig; private readonly environmentSandboxProvider; private sandboxProviderOverride?; private enabled; private mcpAccessEnabled; private permissions; private adminModelName; private searchDisabled; private adminN8nSandboxServiceUrl; private readonly environmentN8nSandboxServiceUrl; constructor(globalConfig: GlobalConfig, dbLockService: DbLockService, settingsRepository: SettingsRepository, userRepository: UserRepository, userService: UserService, aiService: AiService, credentialsService: CredentialsService, credentialsFinderService: CredentialsFinderService, instanceCredentialBroker: InstanceCredentialBroker, sandboxSettingsService: SandboxSettingsService, 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; resolveModelConnectionForVerification(connection: InstanceAiConnectionUpdate): Promise; resolveSandboxConnectionForVerification(connection: InstanceAiConnectionUpdate): Promise; resolveSearchConnectionForVerification(connection: InstanceAiConnectionUpdate): Promise; private connectionForVerification; 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; isActivationCapped(): boolean; getActivationLockMessageThreshold(): number; getSandboxStatus(): InstanceAiSandboxStatus; isInstanceAiEnabled(): boolean; isSetupCompleted(): Promise; isModelConfigured(): Promise; private resolveSetupState; getConfiguredModelId(): string; resolveModelName(user: User): string; resolveModelConfig(user: User): Promise; resolveModelConfigForVerification(user: User, modelName?: string): Promise; buildModelConfigForConnection(connection: InstanceAiConnectionUpdate, modelName: string): 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 rejectEnvironmentManagedFields; private deploymentLabel; private rejectManagedFields; private validateAdminSettingsUpdate; private getSandboxUnavailableReason; private envVarModelConfig; private hasEnvironmentModelConnection; private hasEnvironmentModelName; private hasEnvironmentSandboxConnection; private hasEnvironmentSearchConnection; private isDirectSelfManaged; private envVarModelConfigForModel; private resolveVertexProjectId; private resolveVertexLocation; private vertexAnthropicModelConfig; private customModelOptionsFor; private extractModelName; private applyAdminSettings; private readUserPreferences; private snapshotAdminSettings; private mergeAdminSettings; private readPersistedAdminSettings; private withPersistedAdminSettings; private readAdminModelSelection; private parsePersistedAdminSettings; private emitSettingsUpdated; }