import type { AgentMessage } from "@mariozechner/pi-agent-core";
import type { FasedAgentConfig } from "../../config/config.js";
import type { WorkspaceBootstrapFile } from "../workspace.js";
import type { EmbeddedContextFile } from "./types.js";
type ThoughtSignatureSanitizeOptions = {
    allowBase64Only?: boolean;
    includeCamelCase?: boolean;
};
/**
 * Strips Claude-style thought_signature fields from content blocks.
 *
 * Gemini expects thought signatures as base64-encoded bytes, but Claude stores message ids
 * like "msg_abc123...". We only strip "msg_*" to preserve any provider-valid signatures.
 */
export declare function stripThoughtSignatures<T>(content: T, options?: ThoughtSignatureSanitizeOptions): T;
export declare const DEFAULT_BOOTSTRAP_MAX_CHARS = 20000;
export declare const DEFAULT_BOOTSTRAP_TOTAL_MAX_CHARS = 150000;
export declare const DEFAULT_BOOTSTRAP_PROMPT_TRUNCATION_WARNING_MODE = "once";
export declare function resolveBootstrapMaxChars(cfg?: FasedAgentConfig): number;
export declare function resolveBootstrapTotalMaxChars(cfg?: FasedAgentConfig): number;
export declare function resolveBootstrapPromptTruncationWarningMode(cfg?: FasedAgentConfig): "off" | "once" | "always";
export declare function ensureSessionHeader(params: {
    sessionFile: string;
    sessionId: string;
    cwd: string;
}): Promise<void>;
export declare function buildBootstrapContextFiles(files: WorkspaceBootstrapFile[], opts?: {
    warn?: (message: string) => void;
    maxChars?: number;
    totalMaxChars?: number;
}): EmbeddedContextFile[];
export declare function sanitizeGoogleTurnOrdering(messages: AgentMessage[]): AgentMessage[];
export {};
