import type { ActionAtom, ActionAtomVerb, GoalEvidence, GoalSpec, IntentFrame, NextActionContract, PromptNoveltyReport } from "../contracts/goal.js";
import type { DagNodeRouting } from "../orchestration/dag.js";
import type { NextAction, RunState } from "../contracts/orchestration.js";
import type { OuroborosDecision } from "../runtime/ouroboros-policy.js";
export declare function buildIntentFrame(rawPrompt: string, input?: {
    constraints?: string[];
    successCriteria?: string[];
    expectedArtifacts?: Array<{
        name: string;
        path?: string;
    }>;
}): IntentFrame;
export declare function buildIntentFrameFromGoal(goal: GoalSpec): IntentFrame;
/**
 * IntentFrame enriched with an advisory Ouroboros routing decision.
 * The existing IntentFrame shape is unchanged; the optional ouroboros
 * field is additive and consumed only by callers that understand it.
 */
export type IntentFrameWithOuroboros = IntentFrame & {
    ouroboros?: OuroborosDecision;
};
/**
 * Build an IntentFrame and, for goal/spec/orchestration intents,
 * attach a non-fatal Ouroboros routing decision.
 *
 * The base IntentFrame fields are never modified; the ouroboros hint
 * is purely advisory.
 */
export declare function buildIntentFrameWithOuroboros(rawPrompt: string, input?: {
    constraints?: string[];
    successCriteria?: string[];
    expectedArtifacts?: Array<{
        name: string;
        path?: string;
    }>;
}): Promise<IntentFrameWithOuroboros>;
export declare function actionAtomRouting(atom: ActionAtom): NonNullable<DagNodeRouting["actionAtom"]>;
export declare function renderActionDigest(frame: IntentFrame, options?: {
    maxAtoms?: number;
}): string;
export declare function makeActionAtom(input: {
    id: string;
    label: string;
    verb: ActionAtomVerb;
    object: string;
    evidenceTarget: string;
    doneCondition: string;
    source?: ActionAtom["source"];
    roleHint?: string;
}): ActionAtom;
export declare function buildNextActionContract(action: NextAction, targetId: string, description: string, frame: IntentFrame): NextActionContract;
export declare function evaluatePromptNovelty(input: {
    goal: GoalSpec;
    runState?: RunState;
    previousPrompt?: string;
    evidence?: GoalEvidence[];
    action: NextAction;
    targetAtomId?: string;
}): PromptNoveltyReport;
