/**
 * Infrastructure Management
 * Auto-start and manage FalkorDB and Qdrant containers
 */
/**
 * System requirements for running local AI (Ollama)
 */
export interface SystemRequirements {
    totalMemoryGB: number;
    availableMemoryGB: number;
    freeDiskGB: number;
    meetsMinimum: boolean;
    meetsRecommended: boolean;
    recommendation: 'local' | 'cloud' | 'either';
    issues: string[];
}
/**
 * Check system requirements for running local AI
 */
export declare function checkSystemRequirements(): SystemRequirements;
/**
 * Ollama installation status
 */
export interface OllamaStatus {
    installed: boolean;
    running: boolean;
    installedVia: 'native' | 'docker' | 'none';
    version?: string;
    models: string[];
    canInstallNative: boolean;
    url?: string;
}
/**
 * Start native Ollama service
 */
export declare function startNativeOllama(): Promise<boolean>;
/**
 * Install Ollama natively
 */
export declare function installOllamaNative(options?: {
    silent?: boolean;
    onProgress?: (msg: string) => void;
}): Promise<boolean>;
/**
 * Get comprehensive Ollama status
 */
export declare function getOllamaStatus(): Promise<OllamaStatus>;
export interface InfraStatus {
    falkordb: {
        available: boolean;
        url?: string;
        started?: boolean;
        error?: string;
    };
    qdrant: {
        available: boolean;
        url?: string;
        started?: boolean;
        error?: string;
    };
    ollama?: {
        available: boolean;
        url?: string;
        started?: boolean;
        modelReady?: boolean;
        error?: string;
    };
}
/**
 * Check if Docker is available
 */
export declare function isDockerAvailable(): boolean;
/**
 * Find an available port starting from the given port
 */
export declare function findAvailablePort(startPort: number): number;
/**
 * Ensure FalkorDB is running, auto-starting if needed
 * Returns the URL to connect to, or null if unavailable
 */
export declare function ensureFalkorDB(options?: {
    silent?: boolean;
    configUrl?: string;
}): Promise<{
    url: string;
    started: boolean;
} | null>;
/**
 * Ensure Qdrant is running, auto-starting if needed
 */
export declare function ensureQdrant(options?: {
    silent?: boolean;
}): Promise<{
    url: string;
    started: boolean;
} | null>;
/**
 * Detect if NVIDIA GPU is available for Docker
 */
export declare function detectNvidiaGpu(): boolean;
/**
 * Ensure a specific model is available in Ollama
 */
export declare function ensureOllamaModel(port: number, model: string, options?: {
    silent?: boolean;
    onProgress?: (msg: string) => void;
}): Promise<boolean>;
/**
 * Ensure Ollama is running, auto-starting if needed
 * Checks for system Ollama first, then falls back to Docker container
 */
export declare function ensureOllama(options?: {
    silent?: boolean;
    pullModel?: boolean;
    model?: string;
    useGpu?: boolean;
}): Promise<{
    url: string;
    started: boolean;
    modelReady: boolean;
} | null>;
/**
 * Ensure all infrastructure is running
 */
export declare function ensureInfrastructure(options?: {
    silent?: boolean;
    needGraph?: boolean;
    needVector?: boolean;
    needOllama?: boolean;
    ollamaModel?: string;
}): Promise<InfraStatus>;
/**
 * Sync state information
 */
export interface SyncStatus {
    hasSynced: boolean;
    lastSyncCommit?: string;
    lastSyncTime?: string;
    fileCount?: number;
    symbolCount?: number;
    needsResync: boolean;
    currentCommit?: string;
}
/**
 * Check the sync state for a repository
 */
export declare function checkSyncState(repoRoot: string): Promise<SyncStatus>;
//# sourceMappingURL=infrastructure.d.ts.map