import type { ApiServer } from '../ApiServer'; import type { AuthResult } from '../auth/Authenticator'; import type { GatewayDeployment } from '../ai-gateway/auth/GatewayApiKey'; import { type GatewayAccessKeyRepository } from '../ai-gateway/auth/GatewayApiKeyAuthenticator'; import type { ProviderConnectService } from '../ai-gateway/connect'; import type { ProviderModelSelectionService } from '../ai-gateway/models/ProviderModelSelectionService'; import type { ProviderQuotaService } from '../ai-gateway/quota'; import { type ProviderCustomModelsService, type ProviderModelsService } from '../ai-gateway/models'; import type { AiConnectionsInvocationKeyIssuer } from '../ai-gateway/auth/AiConnectionsInvocationKeyIssuer'; import { type AiClientConfigurationCapabilityDescriptor } from '../service/AiClientConfigurationService'; export interface AiGatewayManagementHandlerOptions { deployment: GatewayDeployment; connectService?: ProviderConnectService; quotaService?: ProviderQuotaService; modelsService?: ProviderModelsService; providerModelSelectionService?: ProviderModelSelectionServicePort; modelSelectionService?: ProviderModelSelectionServicePort; selectionService?: ProviderModelSelectionServicePort; customModelsService?: ProviderCustomModelsService; servicePrincipal?: { getServicePrincipal(): Promise<{ webId: string; }>; }; gatewayAccessKeyRepository?: GatewayAccessKeyRepository; /** Reuses the configured CSS authenticator; never trusts the claimed registration owner. */ validateClientCredential?: (apiKey: string) => Promise; aiClientConfiguration?: AiClientConfigurationCapabilityDescriptor; aiConnectionInvocationKeyIssuer?: Pick; jsonBodyLimitBytes?: number; } export declare function registerAiGatewayManagementRoutes(server: ApiServer, options: AiGatewayManagementHandlerOptions): void; type ProviderModelSelectionServicePort = Pick & Partial>; export {};