/**
 * Phase 5a — Skill-source picker (olam-setup-epic Phase B).
 *
 * Three paths (in evaluation order):
 *   1. Skip-on-flag  — opts.skipSkillSource is true
 *   2. Non-interactive — opts.skillSource provides a curated name or git URL
 *   3. Interactive TUI — @inquirer/prompts select + optional custom-URL input
 *
 * After path 2 or 3 resolves a git URL: addSkillSource → cloneSkillSource →
 * appendTrustAudit('setup-skill-source-picked').
 *
 * TTY-safety: when !process.stdin.isTTY and no --skill-source flag, falls back
 * to the recommended default (atlas-toolbox) with a stderr hint — mirrors the
 * defaultPrompt pattern in setup.ts.
 *
 * Dependency injection: real @olam/core functions are lazily imported so this
 * module resolves in vitest without a pre-built @olam/core dist. Callers
 * inject stubs via RunSetupDeps for unit tests.
 */
import type { RunSetupOptions, RunSetupDeps, PhaseResult } from './setup.js';
import type { SkillSource } from '@olam/core/src/skill-sources/schema.js';
import type { TrustAuditEntry } from '@olam/core/src/skill-sources/trust-audit-log.js';
declare const CURATED_SOURCES: readonly [{
    readonly value: "atlas-toolbox";
    readonly name: "atlas-toolbox (recommended)";
    readonly gitUrl: "https://github.com/grain-tech/atlas-toolbox.git";
}, {
    readonly value: "grain-tech/ai-skills";
    readonly name: "grain-tech/ai-skills";
    readonly gitUrl: "https://github.com/grain-tech/ai-skills.git";
}, {
    readonly value: "custom";
    readonly name: "Custom git URL…";
    readonly gitUrl: null;
}];
type CuratedValue = (typeof CURATED_SOURCES)[number]['value'];
export type AddSkillSourceFn = (entry: {
    name: string;
    gitUrl: string;
    branch?: string;
    trustMethod: 'flag' | 'interactive';
}) => SkillSource;
export type CloneSkillSourceFn = (opts: {
    gitUrl: string;
    branch: string;
    id: string;
}) => {
    clonePath: string;
    headSha: string;
};
export type AppendTrustAuditFn = (entry: Omit<TrustAuditEntry, 'timestamp'> & {
    timestamp?: string;
}) => TrustAuditEntry;
export type RedactUrlFn = (url: string) => string;
export type SelectPromptFn = (config: {
    message: string;
    choices: ReadonlyArray<{
        value: CuratedValue;
        name: string;
    }>;
}) => Promise<CuratedValue>;
export type InputPromptFn = (config: {
    message: string;
    validate: (v: string) => boolean | string;
}) => Promise<string>;
export declare function pickSkillSourcePhase(opts: RunSetupOptions, deps: RunSetupDeps): Promise<PhaseResult>;
export {};
//# sourceMappingURL=setup-phase-5a-skill-source.d.ts.map