import { type RewritePolicyOptions } from "./rewrite-policy.js";
import type { CompactResult, ToolExecutionInput } from "../../types.js";
import type { InspectionCommandPolicy, InspectionCommandSkipReason } from "../inventory-safety.js";
export type CompactBashResultInput = {
    source: "claude-code" | "cline" | "codex" | "copilot-cli" | "droid" | "gemini-cli" | "openclaw" | "openhands" | "opencode" | "pi";
    command: string;
    cwd?: string;
    visibleText: string;
    trustedFullText?: string;
    exitCode?: number;
    maxInlineChars?: number;
    storeRaw?: boolean;
    metadata?: Record<string, unknown>;
    inspectionPolicy?: InspectionCommandPolicy;
    /** @deprecated use inspectionPolicy instead. */
    skipInspectionCommands?: boolean;
} & RewritePolicyOptions;
export type CompactBashResultKeepReason = "empty-output" | InspectionCommandSkipReason | "unsupported" | "no-compaction" | "low-savings-compaction" | "generic-compound-command" | "generic-weak-compaction";
export type CompactBashResultOutput = {
    action: "keep";
    reason: CompactBashResultKeepReason;
    rawText: string;
    usedTrustedFullText: boolean;
    result?: CompactResult;
} | {
    action: "rewrite";
    rawText: string;
    usedTrustedFullText: boolean;
    result: CompactResult;
};
export declare function getOutputAwareInspectionSkipReason(policy: InspectionCommandPolicy, executionInput: ToolExecutionInput): InspectionCommandSkipReason | null;
export declare function compactBashResult(input: CompactBashResultInput): Promise<CompactBashResultOutput>;
