import type { ArkmeArkoHistoryPage } from '../types.js'; import { ArkmeArkoConversationPreviewStore } from './arko-conversation-preview-store.js'; export declare const ARKO_CONVERSATION_PREVIEW_SYNC_INTERVAL_MS = 15000; export interface ArkmeArkoPreviewVisibilityTarget { readonly visibilityState: string; addEventListener(type: 'visibilitychange', listener: () => void): void; removeEventListener(type: 'visibilitychange', listener: () => void): void; } export type ArkmeArkoPreviewHistoryLoader = (signal: AbortSignal) => Promise; /** * Keeps the navigation preview fresh when Arko messages are written by another * client or a DSH Tool. Arko has no dedicated cross-device push projection, so * this foreground-only poll is the browser-side freshness owner. */ export declare class ArkmeArkoConversationPreviewSync { private readonly store; private readonly loadHistory; private readonly intervalMs; private readonly visibilityTarget; private running; private userId; private generation; private interval; private controller; private pending; private readonly onVisibilityChange; constructor(store?: ArkmeArkoConversationPreviewStore, loadHistory?: ArkmeArkoPreviewHistoryLoader, intervalMs?: number, visibilityTarget?: ArkmeArkoPreviewVisibilityTarget | undefined); start(userId: number): () => void; stop(): void; refresh(): Promise; } //# sourceMappingURL=arko-conversation-preview-sync.d.ts.map