///
import { EventEmitter } from 'events';
import KnowledgeServer from './knowledge_server';
import WizDb from '../db/wiz_db';
import { User, Note, NoteResource } from '../common/interface';
export interface SyncKbOptions {
downloadTrashNotes?: boolean;
noWait?: boolean;
waitDownload?: boolean;
manual?: boolean;
uploadOnly?: boolean;
downloadFirst?: boolean;
callback?: (data: {
error: Error | null;
type?: string;
status?: string;
note?: Note;
}) => void;
}
declare class SyncKbTask extends EventEmitter {
_kbGuid: string;
_ks: KnowledgeServer;
_db: WizDb;
_user: User;
_isRunning: boolean;
_options: SyncKbOptions;
constructor(user: User, serverUrl: string, kbGuid: string, db: WizDb, invalidTokenHandler: () => Promise, options?: SyncKbOptions);
get kbGuid(): string;
syncAll(): Promise;
uploadNotes(): Promise<{
uploadedCount: number;
failedNotes: any[];
}>;
downloadNoteData(noteGuid: string): Promise;
uploadDeletedNotes(): Promise;
downloadDeletedObjects(): Promise;
downloadNotes(): Promise;
reportStatus(error: Error | null, type?: string, status?: string, note?: Note): void;
downloadNotesData(): Promise;
downloadNoteResource(noteGuid: string, resName: string): Promise;
downloadNoteResources(noteGuid: string, resources: NoteResource[]): Promise;
}
export default SyncKbTask;