/**
 * Pure cross-module risk summaries (users + API keys).
 *
 * Take already-fetched rows so they can be unit-tested without a DB. The
 * gatherer queries the minimal columns and hands them here.
 */
import type { ApiKeysSecuritySummary, UsersSecuritySummary } from './types.js';
export interface UserRow {
    role: string;
    isActive: boolean;
    totpEnabled: boolean;
}
export declare function summarizeUsers(rows: UserRow[]): UsersSecuritySummary;
export interface ApiKeyRow {
    scopes: unknown;
    expiresAt: Date | string | null;
    lastUsedAt: Date | string | null;
    revokedAt: Date | string | null;
}
export declare function summarizeApiKeys(rows: ApiKeyRow[], now?: number): ApiKeysSecuritySummary;
//# sourceMappingURL=summaries.d.ts.map