export interface ScreenMemoryConfig { enabled: boolean; paused: boolean; retentionHours: number; maxBytes: number; segmentSeconds: number; sampleIntervalSeconds: number; captureMode: "visuals" | "visuals-audio"; reviewBeforeSending: boolean; agentClipRetention: "forever" | "24-hours" | "7-days" | "30-days"; excludedBundleIds: string[]; excludePrivateWindows: boolean; } export interface ScreenMemoryStatus { feature: "screen-memory"; localOnly: true; enabled: boolean; paused: boolean; state: "disabled" | "paused" | "ready" | "empty" | "unavailable"; config: ScreenMemoryConfig; configPath: string | null; configSource: "feature-config" | "standalone" | "default"; dataDirs: string[]; contextFiles: string[]; captureCount: number; storageBytes: number; oldestCaptureAt: string | null; newestCaptureAt: string | null; note: string; } export interface ScreenMemoryContextItem { capturedAt: string | null; appName: string | null; windowTitle: string | null; bundleId: string | null; url: string | null; title: string | null; source: string | null; text: string; sourceFile: string; } export type ScreenMemoryEvidenceSourceType = "app-context" | "transcript" | "ocr"; export interface ScreenMemoryTimeRange { startedAt: string | null; endedAt: string; } export interface ScreenMemoryCoverageGap { startedAt: string | null; endedAt: string | null; reason: "no-context-files" | "no-evidence-in-requested-range" | "missing-before-first-evidence" | "capture-stale" | "timestamps-unavailable" | "index-pending" | "index-failed" | "index-skipped" | "privacy-excluded-or-unretained"; } export interface ScreenMemorySegmentReference { id: string; startedAt: string | null; endedAt: string | null; } export interface ScreenMemoryEvidenceItem { id: string; momentId: string; capturedAt: string | null; sourceType: ScreenMemoryEvidenceSourceType; excerpt: string; excerptTruncated: boolean; appName: string | null; windowTitle: string | null; bundleId: string | null; url: string | null; title: string | null; segmentRefs: ScreenMemorySegmentReference[]; jumpTarget: { kind: "screen-memory-moment"; momentId: string; capturedAt: string | null; segmentId: string | null; }; } export interface ScreenMemoryRetrievalCoverage { requestedRange: ScreenMemoryTimeRange; coveredRange: { startedAt: string | null; endedAt: string | null; }; gaps: ScreenMemoryCoverageGap[]; } export interface ScreenMemoryTruncation { itemLimit: number; returnedItems: number; omittedItems: number; maxExcerptChars: number; excerptsTruncated: number; sourceRowsReadLimit: number; sourceRowsReadTruncated: boolean; } export interface ScreenMemoryQueryResult { feature: "screen-memory"; localOnly: true; enabled: boolean; paused: boolean; query: string | null; sinceMinutes: number | null; count: number; items: ScreenMemoryContextItem[]; /** Stable, bounded local retrieval contract. `items` remains for legacy callers. */ evidence: ScreenMemoryEvidenceItem[]; coverage: ScreenMemoryRetrievalCoverage; truncation: ScreenMemoryTruncation; contextFiles: string[]; note: string; } export interface ScreenMemoryLocalOptions { env?: NodeJS.ProcessEnv; platform?: NodeJS.Platform; homeDir?: string; /** Test-only clock injection; retrieval never reads network time. */ now?: () => Date; } export interface ScreenMemoryAgentQueryResult extends ScreenMemoryQueryResult { egress: { requestId: string; packet: { question: string; evidence: Array<{ id: string; momentId: string; sourceType: ScreenMemoryEvidenceSourceType; capturedAt: string | null; excerpt: string; }>; }; note: string; }; } export declare function configureScreenMemory(patch: Partial, options?: ScreenMemoryLocalOptions): Promise; export declare function queryScreenMemoryContext(args?: { query?: string | null; limit?: number | null; sinceMinutes?: number | null; }, options?: ScreenMemoryLocalOptions): Promise; /** * Agent-facing retrieval boundary. Asking an agent to search Rewind is the * authorization. This removes filesystem paths, redacts obvious * credential-shaped text, and records a content-free activity receipt before * it is returned to an action caller. */ export declare function queryScreenMemoryForAgent(args?: { query?: string | null; limit?: number | null; sinceMinutes?: number | null; }, options?: ScreenMemoryLocalOptions): Promise; export declare function readScreenMemoryStatus(options?: ScreenMemoryLocalOptions): Promise; //# sourceMappingURL=screen-memory-local.d.ts.map