/**
 * Marketing Quality Gate ; persona-driven pre-publish content gate.
 *
 * This is a pure function. It consumes the agent persona as the SOLE source
 * of content-policy rules and the payload as the subject under review.
 *
 * Design (Brain entry d8df4ed7 follow-up #1) :
 *   - The persona owns the content rules. `forbidden_patterns[].pattern`
 *     compiles to RegExp and is matched against text fields ; matches surface
 *     as violations. `directives.must_not[]` is matched as case-insensitive
 *     substring against text fields ; matches surface as warnings.
 *   - The gate owns the STRUCTURAL rules (per-platform shape). X tweet ≤280
 *     chars, X thread total entries (1 root + thread[]) within 2-6, LinkedIn
 *     body length window, etc. These are about shape not content rules so they
 *     stay hard-coded.
 *
 * The gate returns `passed` (no violations), the violation list, and a
 * warning list (non-blocking). Callers (the campaign orchestrator + the
 * marketing-content generator) decide what to do with each.
 *
 * Cross-references :
 *   - `packages/agent-sdk/src/identity/persona-schema.ts` (AgentPersona)
 *   - `packages/agent-sdk/src/identity/persona-prompt.ts` (system-prompt build)
 *
 * @public
 */
import type { AgentPersona } from "../identity/persona-schema.js";
export interface MarketingGateInput {
    /** Citadel CampaignActionType ; drives which payload fields are extracted. */
    readonly action_type: string;
    /** Optional platform (x | linkedin | rempart | email | discord | ...). */
    readonly platform?: string;
    /** Action payload ; null/undefined/{} fails the gate up-front. */
    readonly payload: Record<string, unknown> | null | undefined;
    /** Agent persona ; carries forbidden_patterns + directives. */
    readonly persona: AgentPersona;
}
export interface MarketingGateResult {
    readonly passed: boolean;
    readonly violations: string[];
    readonly warnings: string[];
}
/**
 * Evaluate the marketing payload against the persona content rules + the
 * platform structural rules. Pure function ; no side effects.
 *
 * Verdict semantics :
 *   - `passed=true` ; no violations. Warnings may still be present.
 *   - `passed=false` ; one or more violations. Caller MUST block dispatch.
 *
 * Caller contract : the orchestrator passes the persona resolved for the
 * agent emitting this payload. The gate makes no assumption about which
 * persona is in play ; it simply applies whatever rules the persona carries.
 */
export declare function evaluateQualityGate(input: MarketingGateInput): MarketingGateResult;
//# sourceMappingURL=quality-gate.d.ts.map