import type { ConfigManager } from '../config/manager.js';
import type { SessionDomainState } from './store/domains/session.js';
export type GuidanceMode = 'off' | 'minimal' | 'guided';
export type SessionMaintenanceLevel = 'stable' | 'watch' | 'suggest-compact' | 'compacting' | 'needs-repair' | 'unknown';
export interface SessionMaintenanceStatus {
    readonly level: SessionMaintenanceLevel;
    readonly guidanceMode: GuidanceMode;
    readonly usagePct: number;
    readonly remainingTokens: number;
    readonly thresholdPct: number;
    readonly autoCompactEnabled: boolean;
    readonly compactRecommended: boolean;
    readonly sessionMemoryCount: number;
    readonly compactionCount: number;
    readonly lastCompactedAt?: number | undefined;
    readonly summary: string;
    readonly reasons: readonly string[];
    readonly nextSteps: readonly string[];
}
export interface SessionMaintenanceInput {
    readonly configManager: Pick<ConfigManager, 'get'>;
    readonly currentTokens: number;
    readonly contextWindow: number;
    readonly messageCount?: number | undefined;
    readonly sessionMemoryCount?: number | undefined;
    readonly session?: Partial<SessionDomainState> | undefined;
}
export declare function getGuidanceMode(configManager: Pick<ConfigManager, 'get'>): GuidanceMode;
export declare function evaluateSessionMaintenance(input: SessionMaintenanceInput): SessionMaintenanceStatus;
export declare function formatSessionMaintenanceLines(status: SessionMaintenanceStatus, detail?: 'minimal' | 'guided'): string[];
//# sourceMappingURL=session-maintenance.d.ts.map