/** Bind a session to the account that just served it, refreshing its idle clock. */
export declare function bind(sessionId: string, accountKey: string, now: number): void;
/**
 * The account a session is bound to, or undefined if unbound or idle-expired.
 * A read never refreshes the binding — only a served request (bind) does,
 * since the idle TTL counts from the session's last served request.
 */
export declare function get(sessionId: string, now: number, idleTtlMs: number): string | undefined;
export declare function clear(): void;
export declare function size(): number;
/**
 * Sessions whose binding has not idle-expired. Expired entries are dropped
 * here as on read, since otherwise they would linger until the cap evicted
 * them.
 */
export declare function countActive(now: number, idleTtlMs: number): number;
export declare const sessionAffinity: Readonly<{
    bind: typeof bind;
    get: typeof get;
    clear: typeof clear;
    size: typeof size;
    countActive: typeof countActive;
}>;
