import { default as Fuse } from 'fuse.js';
import { CachedLastMessage, CachedParticipantSettings, UserChatInfo } from '../chat/types';
import { Conversation, ConversationPaginationMeta, Group, Message, MessagePaginationMeta, OfflineStore, PaginatedResponse } from './types';
export declare class OfflineStoreLocalStorage implements OfflineStore {
    #private;
    storePrefix: string;
    constructor(storePrefix?: string);
    setStorePrefix(storePrefix: string, scopedPrefix?: string, clearOtherScopedKeys?: boolean): void;
    getGroupMessages(groupId: string, pagination: MessagePaginationMeta): PaginatedResponse<Message>;
    getThreadMessages(parentId: string, pagination: MessagePaginationMeta): PaginatedResponse<Message>;
    getMessage(messageId: string): {
        data: Message;
    };
    saveMessages(messages: Message[]): void;
    checkIfCachedMessagesIsExpired(): boolean;
    updateExpiredCachedMessages(): Promise<void>;
    purgeMessages(keepByConversationIds: string[]): void;
    getConversations(pagination: ConversationPaginationMeta): PaginatedResponse<Conversation>;
    saveConversations(conversations: Conversation[]): void;
    purgeConversations(keepConversationIds: string[]): void;
    getGroup(groupId: string): Group | null;
    saveGroup(group: Group): void;
    purgeGroups(keepGroupIds: string[]): void;
    getFuseConversations(): Fuse<Conversation>;
    getFuseMessages(): Fuse<Message>;
    getParticipantSettings(uid: string): CachedParticipantSettings | null;
    storeSettings(participantSettings: CachedParticipantSettings): void;
    getLastMessage(groupId: string): CachedLastMessage | null;
    storeLastMessage(cachedLastMessage: CachedLastMessage): void;
    getUserChats(): UserChatInfo[];
    saveUserChats(userChats: UserChatInfo[]): void;
}
