export type ContextBudgetAction = 'status' | 'configure' | 'checkpoint' | 'restore' | 'list-checkpoints' | 'optimize';
export type ContextAlertLevel = 'green' | 'yellow' | 'orange' | 'red';
export type ResponseVerbosity = 'full' | 'compact' | 'minimal';
export interface ContextConsumer {
    tool: string;
    tokens: number;
}
export interface ContextBudgetStatus {
    tokensEstimatedUsed: number;
    tokensEstimatedAvailable: number;
    percentUsed: number;
    alertLevel: ContextAlertLevel;
    operationCount: number;
    topConsumers: ContextConsumer[];
}
export interface ContextBudgetConfig {
    contextWindowSize: number;
    warningThreshold: number;
    criticalThreshold: number;
    autoCompressAbove: number;
    autoCheckpointAbove: number;
}
export interface CheckpointGitStatus {
    staged: string[];
    unstaged: string[];
    branch: string;
}
export interface CheckpointPipelineStatus {
    typecheck: boolean;
    lint: boolean;
    tests: boolean;
}
export interface SessionCheckpoint {
    timestamp: string;
    projectId: string;
    summary: string;
    decisions: string[];
    filesModified: string[];
    filesRead: string[];
    specsInProgress: string[];
    pendingWork: string[];
    gitStatus: CheckpointGitStatus;
    pipelineStatus: CheckpointPipelineStatus;
    contextUsage: ContextBudgetStatus;
}
export interface ContextWarning {
    percentUsed: number;
    tokensRemaining: number;
    recommendation: string;
    autoCompressed?: boolean;
    checkpointPath?: string;
}
export interface DelegationHint {
    operation: string;
    reason: string;
    suggestedModel: 'haiku' | 'sonnet' | 'opus';
    promptTemplate?: string;
}
export interface ContextOptimizationResult {
    currentUsage: ContextBudgetStatus;
    delegationHints: DelegationHint[];
    filesAlreadyRead: string[];
    topTokenConsumers: ContextConsumer[];
}
export interface SessionOperation {
    tool: string;
    tokens: number;
    timestamp: string;
}
export interface CheckpointSummary {
    id: string;
    timestamp: string;
    summary: string;
}
export interface ContextBudgetInput {
    projectId: string;
    action: ContextBudgetAction;
    contextWindowSize?: number;
    warningThreshold?: number;
    criticalThreshold?: number;
    checkpointId?: string;
    limit?: number;
    summary?: string;
    decisions?: string[];
    filesModified?: string[];
    filesRead?: string[];
    specsInProgress?: string[];
    pendingWork?: string[];
}
//# sourceMappingURL=context-budget.d.ts.map