import { GraphQLClient } from '../graphql/client'; import { GitLabVersionDetector, GitLabInstanceInfo } from './GitLabVersionDetector'; import { SchemaIntrospector, SchemaInfo } from './SchemaIntrospector'; import { TokenScopeInfo } from './TokenScopeDetector'; export interface InstanceState { client: GraphQLClient; versionDetector: GitLabVersionDetector; schemaIntrospector: SchemaIntrospector; instanceInfo: GitLabInstanceInfo | null; schemaInfo: SchemaInfo | null; tokenScopeInfo: TokenScopeInfo | null; isInitialized: boolean; introspectedInstanceUrl: string | null; } export declare class ConnectionManager { private static instance; private instances; private currentInstanceUrl; private introspectionPromises; private static introspectionCache; private static readonly CACHE_TTL; private initializePromises; private latestRequestedUrl; private readonly instanceAccessTimes; private static MAX_INSTANCES; private static INSTANCE_TTL_MS; private touchInstance; private dropInstance; private evictExpired; private evictLRUIfOverCapacity; private constructor(); static getInstance(): ConnectionManager; initialize(instanceUrl?: string): Promise; private doInitialize; ensureIntrospected(explicitUrl?: string): Promise; private doIntrospection; private resolveState; getClient(instanceUrl?: string): GraphQLClient; getInstanceClient(instanceUrl?: string, authHeaders?: Record): GraphQLClient; getVersionDetector(instanceUrl?: string): GitLabVersionDetector; getSchemaIntrospector(instanceUrl?: string): SchemaIntrospector; getInstanceInfo(instanceUrl?: string): GitLabInstanceInfo; getSchemaInfo(instanceUrl?: string): SchemaInfo; getCurrentInstanceUrl(): string | null; isConnected(instanceUrl?: string): boolean; isFeatureAvailable(feature: keyof GitLabInstanceInfo['features'], instanceUrl?: string): boolean; getTier(instanceUrl?: string): string; getVersion(instanceUrl?: string): string; isWidgetAvailable(widgetType: string, instanceUrl?: string): boolean; getTokenScopeInfo(instanceUrl?: string): TokenScopeInfo | null; refreshTokenScopes(): Promise; private detectVersionViaREST; private getDefaultFeatures; reinitialize(rawInstanceUrl: string): Promise; clearInflight(rawUrl: string): void; reset(): void; }