/**
 * MockThinkingHandler — canonical example for the v2.14 ThinkingHandler
 * contract. Used by:
 *
 *   1. Tests — drives the shared contract test (every shipped handler
 *      MUST satisfy the same invariants this mock demonstrates).
 *   2. Future provider authors — reference implementation showing how
 *      to handle BOTH Anthropic-shape inputs (signed blocks, possibly
 *      redacted) and OpenAI-shape inputs (multi-block summary). The
 *      pattern of "discriminate by shape, normalize each branch" is
 *      reusable across providers.
 *   3. The MockProvider for end-to-end tests of the framework wiring
 *      without depending on a real LLM SDK.
 *
 * Defaults are deliberately sensitive-data-free — no fake PII, no
 * fake-signature material that could be confused for real cryptography,
 * no internal-looking IDs. Sets the example for consumer-authored
 * handlers.
 */
import type { ThinkingHandler } from './types.js';
/** Shape the mock recognizes for Anthropic-style raw inputs. */
interface MockAnthropicRaw {
    readonly kind: 'anthropic';
    readonly blocks: ReadonlyArray<{
        readonly type: 'thinking' | 'redacted_thinking';
        readonly thinking?: string;
        readonly signature?: string;
    }>;
}
/** Shape the mock recognizes for OpenAI-style raw inputs. */
interface MockOpenAIRaw {
    readonly kind: 'openai';
    readonly summarySteps: readonly string[];
}
/**
 * Build an Anthropic-style raw input for tests. Signature is a marker
 * string — real Anthropic signatures are opaque base64.
 */
export declare function mockAnthropicRaw(blocks: readonly {
    content: string;
    signature?: string;
    redacted?: boolean;
}[]): MockAnthropicRaw;
/**
 * Build an OpenAI-style raw input for tests — one summary step per
 * string. Each step becomes a separate ThinkingBlock with `summary: true`.
 */
export declare function mockOpenAIRaw(summarySteps: readonly string[]): MockOpenAIRaw;
export declare const mockThinkingHandler: ThinkingHandler;
export {};
