import type { SkillSource } from './skill-registry.js';
export interface SkillCacheFileEntry {
    content: string;
    fetchedAt: string;
}
export interface FetchSkillsOptions {
    /** Sources to fetch from. Defaults to all 4. */
    sources?: SkillSource[];
    /** Skip cache and force re-fetch from remote. Default false. */
    forceRefresh?: boolean;
    /** Specific skill names to fetch. If omitted, all skills available from each source. */
    skillNames?: string[];
    /** Per-request timeout in ms. Default 5000 (matches FETCH_TIMEOUT_MS in registry-fetcher.ts). */
    timeoutMs?: number;
    /** Cache TTL in ms. Default 86_400_000 (24h). */
    cacheTtlMs?: number;
}
export interface FetchedSkill {
    skillName: string;
    source: SkillSource;
    /** Absolute path where the skill was written (.claude/skills/<name>.md) */
    installedPath: string;
    /** Whether the file was a new write (true) or already existed / from cache (false) */
    created: boolean;
}
export interface FetchSourceError {
    source: SkillSource;
    /** Skill name when the error is per-skill (404, malformed). Null when source-wide (timeout, 500). */
    skillName: string | null;
    message: string;
    kind: 'timeout' | 'not-found' | 'malformed' | 'network' | 'registry-write-failed' | 'unknown';
}
export interface FetchSkillsResult {
    fetched: FetchedSkill[];
    errors: FetchSourceError[];
}
/** Internal type for the result returned by each source dispatcher. */
export interface SourceFetchResult {
    fetched: FetchedSkill[];
    errors: FetchSourceError[];
}
//# sourceMappingURL=marketplace-fetcher.d.ts.map