import * as Api from '../api'; import * as m from '../model'; import type { Storage } from '../storage'; interface SynchronizeData { 'last-message-id.new': (messageId: m.IQAccount['lastMessageId']) => void; 'message.new': (message: m.IQMessage) => void; synchronized: () => void; } export declare function synchronizeFactory(getInterval: () => number, getEnableSync: () => boolean, getId: () => m.IQAccount['lastMessageId'], logger: (...arg: string[]) => void, s: Storage, api: Api.ApiRequester): { readonly synchronize: (messageId: m.IQAccount['lastMessageId']) => Promise<{ lastMessageId: m.IQAccount['lastMessageId']; messages: m.IQMessage[]; interval: number; }>; readonly on: (event: K, handler: SynchronizeData[K]) => SynchronizeData[K]; readonly off: (event: K_1, handler: SynchronizeData[K_1]) => void; stream(): import("xstream").Stream<{ lastMessageId: m.IQAccount['lastMessageId']; messages: m.IQMessage[]; interval: number; }>; }; export declare module SyncResponse { interface Extras { } interface Payload { } interface Avatar { url: string; } interface UserAvatar { avatar: Avatar; } interface Comment { chat_type: string; comment_before_id: number; comment_before_id_str: string; disable_link_preview: boolean; email: string; extras: Extras; id: number; id_str: string; is_deleted: boolean; is_public_channel: boolean; message: string; payload: Payload; room_avatar: string; room_id: number; room_id_str: string; room_name: string; status: string; timestamp: string; topic_id: number; topic_id_str: string; type: string; unique_temp_id: string; unix_nano_timestamp: number; unix_timestamp: number; user_avatar: UserAvatar; user_avatar_url: string; user_id: number; user_id_str: string; username: string; } interface Meta { last_received_comment_id: number; need_clear: boolean; } interface Results { comments: Comment[]; meta: Meta; } interface RootObject { results: Results; status: number; } } export {};