import { type AnthropicRequest } from './signature.js';
/**
 * Whether we're in recording mode.
 * Set via PLANU_RECORD_CASSETTES=1 env var.
 */
export declare function isRecordingMode(): boolean;
/**
 * Error thrown when a cassette entry is not found (hash mismatch).
 */
export declare class CassetteMissError extends Error {
    readonly cassetteName: string;
    readonly expectedSha: string;
    readonly actualSha: string;
    constructor(cassetteName: string, expectedSha: string, actualSha: string);
}
/**
 * A mock function that intercepts an Anthropic messages.create call.
 * In replay mode: looks up the cassette entry by request sha.
 * In record mode: calls the real implementation and saves the result.
 */
export type MessageCreateFn = (request: AnthropicRequest) => Promise<unknown>;
/**
 * Creates an interceptor function for a specific cassette.
 *
 * @param cassetteName - Name of the cassette file (without .json)
 * @param realImplementation - The real Anthropic messages.create (used in record mode)
 */
export declare function createInterceptor(cassetteName: string, realImplementation?: MessageCreateFn): MessageCreateFn;
//# sourceMappingURL=intercept.d.ts.map