/**
 * Shared types for the wedge-gate runtime (Phase 7).
 *
 * Authoritative source: `docs/opensquid-real-design.md` §"Two-stage wedge gate"
 * + §"Three lesson types × two gates" + §"Context-clearing cycle".
 *
 * The wedge gate is opensquid's strategic moat: lessons captured during the
 * context-clearing cycle (Stage 1, user-validated) only ever mutate a skill
 * if outcome metrics confirm sustained improvement (Stage 2,
 * outcome-validated). Self-grading by an LLM is explicitly disallowed —
 * promotion signals are external (verdict pass rate, user explicit confirm).
 *
 * Four lesson types, two gates (per the design doc + SCHED.4):
 *
 *   workflow         — Stage 1 only (user-validated at capture).
 *   preference       — Stage 1 only (user-validated at capture).
 *   skill_upgrade    — Stage 1 + Stage 2 (outcome-validated on top of capture).
 *   schedule_outcome — Stage 1 + Stage 2. Stage 1 capture writes the
 *                      schedule outcome event to the Phase 7.2 buffer; Stage 2
 *                      lives in `schedule_outcome.ts` (separate from
 *                      `promote.ts`'s `OutcomeSignal` because schedules are a
 *                      time-series across N fires, not a single lesson +
 *                      pass-rate-delta).
 *
 * The `PendingLesson` shape is what `capture.ts` writes to disk; downstream
 * promotion (`promote.ts`) consumes outcome signals keyed by the lesson id.
 *
 * Imports from: nothing (leaf type module).
 * Imported by: src/runtime/wedge/capture.ts, src/runtime/wedge/promote.ts,
 *              src/runtime/wedge/automation_buffer.ts,
 *              src/runtime/wedge/schedule_outcome.ts.
 */
export type LessonType = 'workflow' | 'preference' | 'skill_upgrade' | 'schedule_outcome';
export interface PendingLesson {
    id: string;
    type: LessonType;
    content: string;
    sourceContext: string;
    confidence: number;
    proposedAt: string;
    author?: 'user' | 'agent';
}
//# sourceMappingURL=types.d.ts.map