import type { ArkmeArkoHistoryItem } from '../types.js'; export declare const ARKO_CONVERSATION_PREVIEW_FALLBACK = "\u5BF9\u8BDD\u5E76\u5904\u7406 Arkme \u4E1A\u52A1"; export interface ArkmeArkoPreviewCandidate { key: string; text: string; createdAtMillis?: number; messageId?: number; } export interface ArkmeArkoConversationPreviewSnapshot { revision: number; userId?: number; latestPreview?: string; latestAtMillis?: number; latestKey?: string; latestMessageId?: number; } export interface ArkmeArkoHistoryPreviewRequest { userId: number; requestId: number; surfaceRevision: number; } export declare function normalizeArkoConversationPreview(text: string): string; export declare function latestArkoConversationPreview(candidates: readonly ArkmeArkoPreviewCandidate[]): ArkmeArkoPreviewCandidate | undefined; export declare function latestArkoConversationPreviewInDisplayOrder(candidates: readonly ArkmeArkoPreviewCandidate[]): ArkmeArkoPreviewCandidate | undefined; export declare class ArkmeArkoConversationPreviewStore { private snapshot; private readonly listeners; private nextHistoryRequestId; private latestHistoryRequestId; private surfaceRevision; readonly getSnapshot: () => ArkmeArkoConversationPreviewSnapshot; readonly subscribe: (listener: () => void) => (() => void); activateUser(userId: number | undefined): void; setLatestFromSurface(userId: number, candidates: readonly ArkmeArkoPreviewCandidate[]): void; beginHistoryRequest(userId: number): ArkmeArkoHistoryPreviewRequest | undefined; setLatestFromHistory(request: ArkmeArkoHistoryPreviewRequest, items: readonly ArkmeArkoHistoryItem[]): boolean; private publishLatest; private publish; } export declare const arkmeArkoConversationPreviewStore: ArkmeArkoConversationPreviewStore; //# sourceMappingURL=arko-conversation-preview-store.d.ts.map