import type { ArkmeCalendarRecordLocation, ArkmeCalendarBucketPage, ArkmeCalendarDayRecordPage } from '../types.js'; import type { ArkmeSessionCredentials } from '../keychain-store.js'; import type { SourceService } from './source-service.js'; import type { MediaService } from './media-service.js'; import type { RecordService } from './record-service.js'; import { ServiceRuntime } from './service.js'; import { ArkmePrivacyVisibilityService } from './privacy-visibility.js'; import type { CallHistoryService } from './call-history-service.js'; export declare class CalendarService { private readonly runtime; private readonly privacy; private readonly media; private readonly record; private readonly source; private readonly callHistory?; private readonly sharedRecording?; private readonly locationRefs; private readonly months; private readonly monthReads; private readonly days; private readonly dayReads; dispose(): void; constructor(runtime: ServiceRuntime, privacy: ArkmePrivacyVisibilityService, media: MediaService, record: RecordService, source: SourceService, callHistory?: CallHistoryService | undefined, sharedRecording?: ((raw: unknown, session: ArkmeSessionCredentials) => Promise) | undefined); /** * Read one of the documented multi-source "My day" projections. Keeping * this transport in the calendar domain service avoids expanding the * compatibility facade for every new calendar source. */ activity(options: { source: 'record' | 'chat' | 'call' | 'audio' | 'arko' | 'bot'; mode: 'buckets' | 'details' | 'coverage' | 'transcripts'; body: Record; signal?: AbortSignal; }): Promise; private projectChatActivity; private issueLocationRef; /** Local Host adapter over existing owner APIs, not a new backend endpoint. */ recordLocation(locationRef: string, signal?: AbortSignal): Promise; /** Same service-owned daily index used by Flutter private/group chat calendars. */ chatStatistics(options: { sourceRef: string; timezone: string; timezoneOffsetMillis: number; signal?: AbortSignal; background?: boolean; }): Promise; bucketPage(options: { startDate: string; endDate: string; sourceRef?: string; timezone?: string; background?: boolean; signal?: AbortSignal; }): Promise; private bucketPageUncached; private readScopedBucketDay; dayRecords(options: { bucketDate: string; sourceRef?: string; timezone?: string; limit?: number; oldestFirst?: boolean; cursor?: { sendAtMillis: number; recordUid: string; }; signal?: AbortSignal; }): Promise; private resolveScope; /** Read only one calendar day; backfill filtered rows and reject stalled cursors. */ private scopedDayRows; private invalidViewResponse; private validateViewContext; private validateViewRecords; private bucketDay; private dayRecord; } //# sourceMappingURL=calendar-service.d.ts.map