import { type ReviewPromptSnapshot } from './calendar-day-review-prompts.js'; /** Calendar review v1: separate from recording-only summaries. Durable owner contract. */ export declare const DAY_REVIEW_SOURCES: readonly ["chat", "location", "self", "call", "audio"]; export type DayReviewSource = typeof DAY_REVIEW_SOURCES[number]; export declare const DAY_REVIEW_LABELS: Record; export interface DayReviewQuery { accountScope: string; bucketDate: string; timezone: string; } export interface DayReviewEvidence { ref: string; kind: DayReviewSource; label: string; } export interface DayReviewDetails { scene: string; roles: string[]; events: string[]; mood: string; todos: string[]; quotes: string[]; otherInfo: Array<{ label: string; value: string; }>; } export interface DayReviewCoverageDetails { queryStatus: 'complete' | 'partial' | 'unknown'; contentStatus: 'complete' | 'partial' | 'unknown'; historyStatus: 'complete' | 'partial' | 'unknown'; relationStatus: 'complete' | 'partial' | 'unknown'; visibleCount: number; textCount: number; mediaCount: number; skippedCount: number; } export interface DayReviewPoint { text: string; sourceRefs: string[]; details?: DayReviewDetails; } export interface DayReviewEvent extends DayReviewPoint { title: string; startAtMillis: number | null; endAtMillis: number | null; } export interface DayReviewCoverage { kind: DayReviewSource; status: 'complete' | 'partial' | 'unavailable' | 'empty'; count: number; note: string; details?: DayReviewCoverageDetails; } export interface DayReviewResult { id: string; snapshotId: string; generatedAtMillis: number; modelName: string; sourceKinds: DayReviewSource[]; coverage: DayReviewCoverage[]; summary: DayReviewPoint[]; timeline: DayReviewEvent[]; sources: DayReviewEvidence[]; promptSnapshot?: ReviewPromptSnapshot; } export interface DayReviewJob { id: string; status: 'queued' | 'collecting' | 'organizing' | 'generating' | 'failed'; message: string; failureCode: string; resumable: boolean; } export interface DayReviewState { supported: boolean; job: DayReviewJob | null; result: DayReviewResult | null; freshness: 'changed' | 'unchanged' | 'unknown'; pendingRequestId?: string; resultError?: 'source_revoked' | 'source_changed'; versions: Array<{ id: string; generatedAtMillis: number; }>; } export declare const emptyDayReviewState: () => DayReviewState; export declare const reviewObject: (v: unknown) => Record; export declare const reviewText: (v: unknown, max?: number) => string; export declare function reviewKinds(v: unknown): DayReviewSource[]; export declare function parseDayReviewQuery(value: unknown): DayReviewQuery; export declare function assertDayReviewEnvelope(v: Record, q: DayReviewQuery): void; export declare function parseDayReviewResult(value: unknown, q: DayReviewQuery): DayReviewResult; export declare function parseDayReviewState(value: unknown, q: DayReviewQuery): DayReviewState; export interface DayReviewCreateInput extends DayReviewQuery { requestId: string; modelCode?: string; sourceKinds: DayReviewSource[]; promptConfig?: import('./calendar-day-review-prompts.js').ReviewPromptConfig; reuseResultId?: string; } export interface DayReviewEvidenceQuery extends DayReviewQuery { resultId: string; sourceRef: string; } export interface DayReviewOriginalEvidence { ref: string; resultId: string; kind: DayReviewSource; subtype: string; label: string; text: string; startAtMillis: number | null; endAtMillis: number | null; } export interface DayReviewModels { defaultCode: string; models: Array<{ code: string; displayName: string; }>; } export declare function parseDayReviewModels(value: unknown, q: DayReviewQuery): DayReviewModels; //# sourceMappingURL=calendar-day-review.d.ts.map