/**
 * Human-readable "time since" formatting for session timestamps. Lives here (not
 * inline in `sessions.ts`) so both the session list renderer and the remote
 * offline-cache banner (`remote.ts`) share one formatter — `sessions.ts` imports
 * `remote.ts`, so a back-import would cycle.
 */
export declare function formatRelativeTime(isoTimestamp: string): string;
/**
 * Compact age — `now`, `45m`, `3h`, `2d`, then the calendar date. This is the
 * *creation* half of a session's time cell: it renders right next to the long
 * last-activity label, and one row can afford one long form, not two.
 */
export declare function formatCompactAge(isoTimestamp: string): string;
/** The two time fields a session listing shows for one row. */
export interface SessionAgeParts {
    /**
     * Compact age of the session's creation, set only when the session ran long
     * enough (>= a minute) for it to say something `last` does not.
     */
    created?: string;
    /** Last-activity label — the long relative form the listing sorts by. */
    last: string;
}
/**
 * Split a session's timestamps into the two fields a listing renders: when it
 * was created and when it was last active. One last-activity label answers
 * neither "is this the old session I'm looking for" nor "how long did it run" —
 * a session touched an hour ago may have started last week.
 */
export declare function sessionAgeParts(createdIso: string, lastActivityIso?: string): SessionAgeParts;
/**
 * Parse a time filter string (relative like '7d' or an ISO timestamp) into epoch
 * milliseconds. Backs `--since` on `sessions`, `cost`, `teams`, and `output`, and
 * `--unused` on `secrets list`.
 *
 * It lives here, in a module with no imports, rather than in `discover.ts` where
 * it started: `discover.ts` loads `../sqlite.js`, so importing this one function
 * from there pulls `node:sqlite` into the caller's module graph and Node prints
 * `ExperimentalWarning: SQLite …` on stderr. That is invisible in a command that
 * already touches the session DB, and a broken contract in one that doesn't —
 * `monitors --json` asserts a clean stderr. `discover.ts` re-exports it, so
 * existing importers are unaffected.
 */
export declare function parseTimeFilter(input: string): number;
