/**
 * Producer attestation inputs for the compile worker. Captured per Proposal 278
 * § Action 3 to make compile-worker drift surfaceable through `verify-manifest`.
 *
 * Honest-disclosure contract: each field reflects what the worker *was
 * configured with* (intent), not what the API *accepted* (reality). The
 * fingerprint records absence (omits the slot) when the configured model
 * rejects a sampling parameter — never a placeholder. Per the proposal's
 * missing-slot tolerance clause.
 */
export interface CompileWorkerFingerprintInputs {
    /** Resolved model ID actually sent to the orchestrator (e.g., `claude-sonnet-4-6`). */
    model: string;
    /**
     * Effective sampling temperature, or `undefined` when the configured model
     * rejects `temperature` (Opus 4.7+) or the caller did not set one. Per
     * `docs/reference/supported-models.md` lines 50-52.
     */
    temperature?: number;
    /**
     * Advisory-only slot — Anthropic does not expose `seed` on the messages
     * API. Reserved for future providers that do (OpenAI, Ollama). Phase 1
     * always emits `undefined` on the anthropic path.
     */
    seed?: number;
    /**
     * sha256 of `packages/cli/src/commands/compile-templates.ts` contents
     * (line-endings normalized to `\n`). Single-file hash chosen per Path A
     * in Proposal 278 § Open Questions — the file is 100% prompt-relevant
     * (KIND_ALLOW_LIST + COMPILER_SYSTEM_PROMPT + PIPELINE3_COMPILER_PROMPT
     * with no orthogonal utility code).
     */
    promptTemplateContentHash: string;
}
/**
 * Deterministic sha256 over canonical JSON of the worker config. Sort-key +
 * undefined-drop semantics from `canonicalStringify` give us the missing-slot
 * tolerance the proposal calls for: an absent `temperature` produces a
 * structurally smaller payload than `temperature: 0`, so the fingerprint
 * differs from a hypothetical "temperature placeholder" alternative.
 */
export declare function computeCompileWorkerFingerprint(inputs: CompileWorkerFingerprintInputs): string;
/**
 * sha256 of the compile-worker prompt-template file. Line endings normalized
 * to `\n` so the same source produces the same hash across OS boundaries
 * (matches the normalization used by `generateInputHash` /
 * `generateOutputHash`).
 *
 * Throws `TotemParseError` with a recovery hint when the file is missing —
 * fingerprint capture cannot be silent here because a missing template file
 * means the worker is broken at the source, not just the fingerprint.
 */
export declare function readPromptTemplateContentHash(promptTemplatePath: string): string;
/**
 * True when the model's API rejects the `temperature` (and `top_p` / `top_k`)
 * sampling parameter with HTTP 400. Sourced from
 * `docs/reference/supported-models.md` § Orchestrator Models. Covers:
 *   - Anthropic Opus 4.7+ / Opus 5+ / Sonnet 5+ / Haiku 5+ / Fable / Mythos —
 *     the adaptive-thinking generation removed client sampling control
 *   - OpenAI gpt-5+ reasoning models and the o-series — `temperature` is
 *     unsupported. gpt-5+ *chat* variants (e.g. `gpt-5-chat-latest`) are
 *     excluded: they accept `temperature` while still rejecting the legacy
 *     `max_tokens` key, so the token-key axis is decided separately at the
 *     openai-orchestrator boundary (CR finding on mmnto-ai/totem#2358)
 * Accepts provider-qualified strings ('anthropic:claude-sonnet-5') as well
 * as bare IDs. Consumed by the compile-worker fingerprint (records absence)
 * and by the anthropic/openai orchestrator boundaries (omit the param).
 *
 * Regex is Phase 1 sniff infrastructure — when a provider ships a new family
 * that strips params, widen here. A.3.b's `totem doctor --compliance` is the
 * future home for a richer reconciliation surface; defer until that lands.
 */
export declare function modelStripsTemperature(model: string): boolean;
//# sourceMappingURL=compile-worker-fingerprint.d.ts.map