import type { IngestTarget } from '@mmnto/totem';
export declare function buildNpxCommand(isWin: boolean): {
    command: string;
    args: string[];
};
export type ConfigFormat = 'ts' | 'yaml' | 'toml';
export type Ecosystem = 'javascript' | 'python' | 'rust' | 'go';
export interface DetectedProject {
    hasTypeScript: boolean;
    hasSrc: boolean;
    hasDocs: boolean;
    hasSpecs: boolean;
    hasContext: boolean;
    hasSessions: boolean;
    preferredConfigFormat: ConfigFormat;
    ecosystems: Ecosystem[];
}
export type AiTool = 'Claude Code' | 'Gemini CLI' | 'Cursor' | 'JetBrains Junie' | 'GitHub Copilot';
export interface HookInstallerResult {
    file: string;
    action: 'created' | 'exists' | 'skipped' | 'merged';
    err?: string;
    /** Overrides the default action text in the post-init summary. Used by
     *  force-mode skill refreshes (`--force-skill-refresh`, mmnto-ai/totem#2008)
     *  to surface destructive-by-consent semantics in the summary line. */
    summaryActionOverride?: string;
}
export interface AiToolInfo {
    name: AiTool;
    mcpPath: string | null;
    reflexFile: string | null;
    serverEntry: Record<string, unknown> | null;
    hookInstaller?: (cwd: string, opts?: {
        forceSkillRefresh?: boolean;
    }) => Promise<HookInstallerResult[]>;
}
export type EmbeddingTier = 'openai' | 'ollama' | 'gemini' | 'none';
export interface DetectedOrchestrator {
    block: string;
    config: Record<string, unknown>;
}
/** Check whether any of the given env keys are set (in process.env or .env file content). */
export declare function hasKey(envContent: string, ...keyNames: string[]): boolean;
/**
 * Base AI tool definitions (without hook installers).
 * Hook installers are wired up in init.ts since they depend on scaffolding helpers.
 */
export declare const AI_TOOLS: AiToolInfo[];
export declare function detectProject(cwd: string): DetectedProject;
export declare function detectAiTools(cwd: string): AiToolInfo[];
/**
 * Auto-detect the best embedding tier from the environment.
 * Checks for API keys in env and .env, and optionally for a running Ollama instance.
 */
export declare function detectEmbeddingTier(cwd: string): EmbeddingTier;
/**
 * Auto-detect the best orchestrator from the environment.
 * Priority: gemini CLI → claude CLI → API keys (GEMINI → ANTHROPIC → OPENAI) → null.
 */
export declare function detectOrchestrator(cwd: string): DetectedOrchestrator | null;
export declare function buildTargets(detected: DetectedProject): IngestTarget[];
export declare function formatTargets(targets: IngestTarget[]): string;
//# sourceMappingURL=init-detect.d.ts.map