interface CacheImpactReport {
    breakdown: {
        conversation: { bytes: number; percent: number };
        fileHistory: { bytes: number; count: number; percent: number };
        other: { bytes: number; percent: number };
        thinkingSignatures: { bytes: number; count: number; percent: number };
        toolResults: { bytes: number; count: number; percent: number };
        toolUseRequests: { bytes: number; count: number; percent: number };
    };
    breakEvenTurns: number;
    cacheHitRate: number;
    cacheMissPenalty: number;
    inputPricePerMTok: number;
    model: "haiku"
    | "sonnet"
    | "opus"
    | "opus-4";
    modelDisplayName: string;
    postTrimFirstTurnCost: number;
    postTrimSteadyCostPerTurn: number;
    postTrimTokens: number;
    preTrimCostPerTurn: number;
    preTrimTokens: number;
    projections: {
        savedPercent: number;
        turns: number;
        withoutTrim: number;
        withTrim: number;
    }[];
    reductionPercent: number;
    savingsPerTurn: number;
}

Properties

breakdown: {
    conversation: { bytes: number; percent: number };
    fileHistory: { bytes: number; count: number; percent: number };
    other: { bytes: number; percent: number };
    thinkingSignatures: { bytes: number; count: number; percent: number };
    toolResults: { bytes: number; count: number; percent: number };
    toolUseRequests: { bytes: number; count: number; percent: number };
}
breakEvenTurns: number
cacheHitRate: number
cacheMissPenalty: number
inputPricePerMTok: number
model: "haiku" | "sonnet" | "opus" | "opus-4"
modelDisplayName: string
postTrimFirstTurnCost: number
postTrimSteadyCostPerTurn: number
postTrimTokens: number
preTrimCostPerTurn: number
preTrimTokens: number
projections: {
    savedPercent: number;
    turns: number;
    withoutTrim: number;
    withTrim: number;
}[]
reductionPercent: number
savingsPerTurn: number