/// import { EventEmitter } from "events"; import { Map } from "immutable"; import { Evaluator } from "./evaluator"; import { IpywidgetsState } from "./ipywidgets-state"; import { Client, CompressedPatch, DocType, Document } from "./types"; import { HistoryEntry, HistoryExportOptions } from "./export"; export declare type State = "init" | "ready" | "closed"; export declare type DataServer = "project" | "database"; export interface SyncOpts0 { project_id: string; path: string; client: Client; patch_interval?: number; file_use_interval?: number; string_id?: string; cursors?: boolean; change_throttle?: number; persistent?: boolean; ephemeral?: boolean; data_server?: DataServer; } export interface SyncOpts extends SyncOpts0 { from_str: (str: string) => Document; doctype: DocType; } export interface UndoState { my_times: Date[]; pointer: number; without: Date[]; final?: CompressedPatch; } export declare class SyncDoc extends EventEmitter { project_id: string; private path; private string_id; private my_user_id; private id; private client; private _from_str; private patch_interval; private project_autosave_timer; private change_throttle; private file_use_interval; private throttled_file_use?; private cursors; private cursor_map; private cursor_last_time; private doctype; private state; private syncstring_table; private patches_table; private cursors_table; evaluator?: Evaluator; ipywidgets_state?: IpywidgetsState; private patch_list?; private last; private doc; private before_change?; private last_user_change; private last_save_to_disk_time; private last_snapshot; private snapshot_interval; private users; private settings; private syncstring_save_state; private load_full_history_done; private my_patches; private watch_path?; private file_watcher?; private handle_patch_update_queue_running; private patch_update_queue; private undo_state; private save_patch_prev; private save_to_disk_start_ctime; private save_to_disk_end_ctime; private persistent; readonly data_server: DataServer; private last_has_unsaved_changes?; private ephemeral; private sync_is_disabled; private delay_sync_timer; constructor(opts: SyncOpts); private init; set_cursor_locs(locs: any[], side_effect?: boolean): void; private init_file_use_interval; private set_state; get_state(): State; get_project_id(): string; get_path(): string; get_string_id(): string; get_my_user_id(): number; private assert_not_closed; set_doc(doc: Document, exit_undo_mode?: boolean): void; set(x: any): void; delete(x?: any): void; get(x?: any): any; get_one(x?: any): any; get_doc(): Document; from_str(value: string): void; to_str(): string; count(): number; version(time?: Date): Document; version_without(times: Date[]): Document; revert(time: Date): void; undo(): Document; redo(): Document; private _undo; private _redo; in_undo_mode(): boolean; exit_undo_mode(): void; private init_undo_state; private save_to_disk_autosave; private init_project_autosave; account_id(time: Date): string; time_sent(time: Date): Date | undefined; user_id(time: Date): number; private syncstring_table_get_one; private set_initialized; versions(): Date[]; all_versions(): Date[]; last_changed(): Date; private init_table_close_handlers; close(): Promise; private ensure_syncstring_exists_in_db; private synctable; private init_syncstring_table; private dbg; private init_all; private init_error; private wait_until_fully_ready; private assert_table_is_ready; assert_is_ready(desc: string): void; wait_until_ready(): Promise; wait(until: Function, timeout?: number): Promise; delete_from_database(): Promise; private file_is_read_only; private update_if_file_is_read_only; private init_load_from_disk; private load_from_disk_if_newer; private patch_table_query; private init_patch_list; private init_evaluator; private init_ipywidgets; private init_cursors; private handle_cursors_change; get_cursors(): Map; set_settings(obj: any): Promise; get_settings(): Map; save(): Promise; private next_patch_time; private commit_patch; private snapshot; private snapshot_if_necessary; private process_patch; private get_patches; has_full_history(): boolean; load_full_history(): Promise; show_history(opts?: {}): void; set_snapshot_interval(n: number): Promise; private handle_offline; get_last_save_to_disk_time(): Date; private handle_syncstring_save_state; private handle_syncstring_update; private handle_syncstring_update_new_document; private handle_syncstring_update_existing_document; private init_watch; private pending_save_to_disk; private update_watch_path; private handle_file_watcher_change; private handle_file_watcher_delete; private load_from_disk; private set_save; private set_read_only; is_read_only(): boolean; wait_until_read_only_known(): Promise; has_unsaved_changes(): boolean | undefined; hash_of_saved_version(): number | undefined; hash_of_live_version(): number | undefined; has_uncommitted_changes(): boolean; commit(): boolean; save_to_disk(): Promise; export_history(options?: HistoryExportOptions): HistoryEntry[]; private update_has_unsaved_changes; private wait_for_save_to_disk_done; private save_to_disk_aux; private save_to_disk_user; private save_to_disk_project; private handle_patch_update; private handle_patch_update_queue; disable_sync(): void; enable_sync(): void; delay_sync(timeout_ms?: number): void; private sync_remote_and_doc; private emit_change; }