export interface ConversationBudgetMessage {
    readonly role: string;
    readonly content: string;
}
export interface ConversationBudgetDocumentContext {
    readonly extractedBytes: number;
}
export interface ConversationBudgetInputs {
    readonly modelContextWindow: number;
    readonly modelMaxOutputTokens: number;
    readonly userDraftText: string;
    readonly conversationHistory: readonly ConversationBudgetMessage[];
    readonly documentContext?: readonly ConversationBudgetDocumentContext[] | undefined;
    readonly repoContextPackBytes?: number | undefined;
    readonly knowledgeCapsuleBytes?: number | undefined;
    readonly memoryContextBytes?: number | undefined;
}
export type ConversationBudgetPressure = "low" | "moderate" | "high" | "exceeded";
export interface ConversationBudgetBreakdown {
    readonly draftBytes: number;
    readonly historyBytes: number;
    readonly documentBytes: number;
    readonly repoContextBytes: number;
    readonly knowledgeBytes: number;
    readonly memoryBytes: number;
}
export interface ConversationBudgetEstimate {
    readonly approximateBytes: number;
    readonly approximateTokens: number;
    readonly contextWindowTokens: number;
    readonly reservedOutputTokens: number;
    readonly availableInputTokens: number;
    readonly pressure: ConversationBudgetPressure;
    readonly breakdown: ConversationBudgetBreakdown;
}
export declare function estimateConversationBudget(input: ConversationBudgetInputs): ConversationBudgetEstimate;
//# sourceMappingURL=conversation-budget.d.ts.map