import { type ImageAnalysisConfig } from '../../config/unified-config-types';
import type { CliproxyBridgeMetadata } from '../../api/services/profile-types';
import type { Settings } from '../../types/config';
import type { ProfileType } from '../../types/profile';
export type ImageAnalysisResolutionSource = 'cliproxy-provider' | 'cliproxy-variant' | 'cliproxy-composite' | 'copilot-alias' | 'cliproxy-bridge' | 'profile-backend' | 'fallback-backend' | 'native-compatible' | 'disabled' | 'unsupported-profile' | 'unresolved' | 'missing-model';
export type ImageAnalysisStatusCode = 'active' | 'mapped' | 'attention' | 'disabled' | 'skipped' | 'hook-missing';
export type ImageAnalysisAuthReadiness = 'not-needed' | 'ready' | 'missing' | 'unknown';
export type ImageAnalysisProxyReadiness = 'not-needed' | 'ready' | 'remote' | 'stopped' | 'unavailable' | 'unknown';
export type ImageAnalysisEffectiveRuntimeMode = 'cliproxy-image-analysis' | 'native-read';
export interface ImageAnalysisResolutionContext {
    profileName: string;
    profileType?: ProfileType;
    settingsPath?: string | null;
    cliproxyProvider?: string | null;
    isComposite?: boolean;
    settings?: Pick<Settings, 'env' | 'ccs_image'> | null;
    cliproxyBridge?: CliproxyBridgeMetadata | null;
    hookInstalled?: boolean;
    sharedHookInstalled?: boolean;
}
export interface ImageAnalysisStatus {
    enabled: boolean;
    supported: boolean;
    status: ImageAnalysisStatusCode;
    backendId: string | null;
    backendDisplayName: string | null;
    model: string | null;
    resolutionSource: ImageAnalysisResolutionSource;
    reason: string | null;
    shouldPersistHook: boolean;
    persistencePath: string | null;
    runtimePath: string | null;
    usesCurrentTarget: boolean | null;
    usesCurrentAuthToken: boolean | null;
    hookInstalled: boolean | null;
    sharedHookInstalled: boolean | null;
    authReadiness: ImageAnalysisAuthReadiness;
    authProvider: string | null;
    authDisplayName: string | null;
    authReason: string | null;
    proxyReadiness: ImageAnalysisProxyReadiness;
    proxyReason: string | null;
    effectiveRuntimeMode: ImageAnalysisEffectiveRuntimeMode;
    effectiveRuntimeReason: string | null;
    profileModel: string | null;
    nativeReadPreference: boolean;
    nativeImageCapable: boolean | null;
    nativeImageReason: string | null;
}
export declare function normalizeImageAnalysisBackendId(value: string | null | undefined, knownBackends?: Iterable<string>): string | null;
export declare function canonicalizeImageAnalysisConfig(config: ImageAnalysisConfig): ImageAnalysisConfig;
export declare function resolveImageAnalysisStatus(context: ImageAnalysisResolutionContext, rawConfig?: ImageAnalysisConfig): ImageAnalysisStatus;
//# sourceMappingURL=image-analysis-backend-resolver.d.ts.map