/**
 * @medicine-wheel/community-review — Storyteller Perspective Gate
 *
 * A runtime quality boundary: output that lacks the creator's storyteller
 * signature is rejected with a useful revision reason, so an agent revises
 * rather than ships voiceless output.
 *
 * Episode 066 (Jerry thread): "if there is no Miette perspective … in the
 * output, it's going to get rejected and the agent will have to revise."
 * Modeled on the existing `mw_enforce_gate` rejection pattern — accountability
 * at the interface layer, not model retraining.
 */
/** The creative signature an output must carry to be accountable to its author. */
export interface StorytellerSignature {
    /**
     * Markers that identify the creator's storyteller voice — names, glyphs, or
     * phrases (e.g. ['🌸', 'Miette', 'narrative resonance']). Matched
     * case-insensitively as substrings.
     */
    markers: string[];
    /** Minimum number of DISTINCT markers required to pass (default: 1). */
    minMarkers?: number;
    /** Optional human label for the signature, used in the revision reason. */
    label?: string;
}
export interface StorytellerGateResult {
    /** Whether the output carries enough of the storyteller signature. */
    passed: boolean;
    /** Distinct markers found in the output. */
    matchedMarkers: string[];
    /** True when no signature marker at all was found. */
    missingSignature: boolean;
    /** When rejected, a concrete instruction the agent can act on to revise. */
    revisionReason?: string;
}
/**
 * Evaluate an output against a storyteller signature.
 *
 * @param output  The produced text to evaluate.
 * @param signature  The creative signature it must carry.
 */
export declare function storytellerGate(output: string, signature: StorytellerSignature): StorytellerGateResult;
/**
 * Convenience: throw when the gate rejects, mirroring `mw_enforce_gate`
 * rejection semantics for call sites that prefer fail-fast over inspection.
 */
export declare function enforceStorytellerGate(output: string, signature: StorytellerSignature): void;
//# sourceMappingURL=storyteller.d.ts.map