/**
 * Skill capture — Hermes Procedural Learning Loop equivalent.
 *
 * Wires the orphan helpers `learn.shouldLearn` + `skill-loop.extractCandidate`
 * into the OODA feedback phase. Activates only when
 * `OODAAgentConfig.skillCapture.enabled === true`.
 *
 * Fail-soft: errors during persistence or markdown rendering are logged but
 * never thrown ; the OODA cycle status is unaffected.
 *
 * Tier classification: every captured skill is tagged
 * `metadata.vauban.tier: unverified` (per EU AI Act Art. 14 ; no auto-injection
 * into prod execution before audit gate).
 *
 * @module orchestration/ooda/skill-capture
 * @public @experimental @since 1.13.0
 */
import { type LearningTrigger } from "./learn.js";
import type { ProceduralMemoryPort } from "../../ports/brain.js";
import type { LoggerPort } from "../../ports/logger.js";
import type { OutcomeRecord } from "./types.js";
/**
 * Configuration for skill capture in the OODA feedback phase.
 *
 * @public @experimental @since 1.13.0
 */
export interface SkillCaptureOptions {
    /** Master switch. When false, capture is a no-op. */
    readonly enabled: boolean;
    /** Min outcome quality to trigger capture. Default: 0.8. */
    readonly minQuality?: number;
    /** Procedural memory port for persistence (typically `BrainPort.procedural`). */
    readonly procedural?: ProceduralMemoryPort;
    /** Optional sink for SKILL.md markdown rendering (test/dev). */
    readonly markdownSink?: (path: string, content: string) => Promise<void>;
    /** Domain key — usually derived from agentId. */
    readonly domain: string;
    /** Optional override of the instruction synthesizer. */
    readonly synthesize?: (traceSummary: string) => string;
}
/**
 * Result returned by `captureSkillFromCycle`. Never throws ; always returns.
 *
 * @public @experimental @since 1.13.0
 */
export interface CaptureResult {
    readonly captured: boolean;
    readonly candidateId?: string;
    readonly reason?: string;
}
/**
 * Capture a skill candidate from a completed OODA cycle.
 *
 * Gating sequence:
 *  1. `opts.enabled` must be true.
 *  2. `shouldLearn(trigger)` must return true.
 *  3. `outcome.quality` must be >= `opts.minQuality` (default 0.8).
 *
 * On success, persists to `opts.procedural` (best-effort) and optionally
 * renders to `opts.markdownSink`. Never throws.
 */
export declare function captureSkillFromCycle(agentId: string, runId: string, trigger: LearningTrigger, outcome: OutcomeRecord | null, traceSummary: string, opts: SkillCaptureOptions, logger: LoggerPort): Promise<CaptureResult>;
//# sourceMappingURL=skill-capture.d.ts.map