/**
 * Skill-signals writer — appends refinement / generation signals to
 * `.specweave/state/skill-signals.json`, always persisting in v2 format.
 *
 * First write to a legacy v1 file upgrades it to v2 on disk.
 *
 * @module core/skill-signals/writer
 */
import { type GenerationSignal, type RefinementSignal, type SignalSource, type SignalSeverity } from '../../types/skill-signals.js';
export interface AppendRefinementInput {
    source: SignalSource;
    targetSkill: string;
    severity: SignalSeverity;
    incrementId: string;
    evidence: string;
    /** Override detectedAt (mainly for tests). Defaults to `new Date().toISOString()`. */
    detectedAt?: string;
    /** Override id (mainly for tests). Defaults to `sig_<random>`. */
    id?: string;
}
/**
 * Append a refinement signal to the file at `filePath`. The file is created
 * if missing and upgraded to v2 if it's currently v1. Returns the newly
 * appended signal for convenience (id/detectedAt generation is visible to
 * the caller).
 */
export declare function appendRefinementSignal(filePath: string, input: AppendRefinementInput): Promise<RefinementSignal>;
/**
 * Append a pre-constructed generation signal. SignalCollector continues to
 * write through its own path; this helper exists so other callers (e.g. the
 * skill-gen CLI) can migrate to the v2 API incrementally.
 */
export declare function appendGenerationSignal(filePath: string, signal: Omit<GenerationSignal, 'type'>): Promise<GenerationSignal>;
//# sourceMappingURL=writer.d.ts.map