import type { Config } from '../config/schema.js';
export type SessionResetMode = 'daily' | 'idle';
export type SessionResetType = 'direct' | 'group' | 'thread';
export type SessionResetConfig = NonNullable<Config['session']>['reset'];
export type SessionResetPolicy = {
    mode: SessionResetMode;
    atHour: number;
    idleMinutes?: number;
    configured?: boolean;
};
export type SessionFreshness = {
    fresh: boolean;
    dailyResetAt?: number;
    idleExpiresAt?: number;
};
export declare const DEFAULT_RESET_MODE: SessionResetMode;
export declare const DEFAULT_RESET_AT_HOUR = 4;
/** Default idle window when mode is `idle` and no explicit minutes are set. */
export declare const DEFAULT_IDLE_MINUTES = 0;
export declare function resolveDailyResetAtMs(now: number, atHour: number): number;
export declare function resolveSessionResetPolicy(params: {
    sessionCfg?: Config['session'];
    resetType: SessionResetType;
    resetOverride?: SessionResetConfig;
}): SessionResetPolicy;
export declare function evaluateSessionFreshness(params: {
    updatedAt: number;
    sessionStartedAt?: number;
    lastInteractionAt?: number;
    now: number;
    policy: SessionResetPolicy;
}): SessionFreshness;
