import { sessionHostMetrics } from './schema/sessions.js'; import type { StoredSessionHostMetrics } from '@opensip-cli/contracts'; import type { DrizzleDataStore, DrizzleHandle } from '@opensip-cli/datastore/internal'; /** Package-private validated metrics projection shared by both write paths. */ export interface PreparedHostMetricsWrite { readonly row: typeof sessionHostMetrics.$inferInsert; readonly patch: Partial; } export declare function prepareHostMetricsWrite(sessionId: string, metrics: StoredSessionHostMetrics): PreparedHostMetricsWrite; /** Project a raw host-metrics row, dropping null columns (only captured metrics). */ export declare function projectHostMetrics(row: typeof sessionHostMetrics.$inferSelect): StoredSessionHostMetrics | undefined; /** Read host-metrics for one session, or `undefined` when no row exists. */ export declare function readHostMetrics(datastore: DrizzleDataStore, sessionId: string): StoredSessionHostMetrics | undefined; /** Batch-load host-metrics for a page of session ids (avoids list()'s N+1). */ export declare function hostMetricsBySessionId(datastore: DrizzleDataStore, ids: readonly string[]): Map; /** Package-private strict metrics upsert used inside an owning transaction. */ export declare function writeHostMetricsRowOrThrow(tx: DrizzleHandle, sessionId: string, metrics: StoredSessionHostMetrics): void; //# sourceMappingURL=session-repo-host-metrics.d.ts.map