import { EventEmitter } from 'eventemitter3'; import { Socket as SocketClient } from 'socket.io-client'; import { Config, Summary } from '@topwrite/common'; import { Buffer } from 'buffer'; import { Commit, Diff, DiffFile, File, Release, State, Status } from 'repo'; interface SocketSettings { url?: string; id?: string; } export declare class Socket extends EventEmitter { private store; private client; constructor(options?: SocketSettings); createClient({ url, id }: SocketSettings): SocketClient; connect(): Promise; getStatus(): Promise; ready(): void; reset(): Promise; getState(): Promise; getConfig(): Promise; getSummary(): Promise; setSummary(summary: string | object): void; setConfig(config: object): void; setCurrent(path: string | null): Promise; readDir(root?: string): Promise; readFile(filename: string): Promise; readFileAsString(filename: string): Promise; writeFile(filename: string, content: Buffer): Promise; writeFileAsync(filename: string, content: Buffer): void; replaceFileAsync(filename: string, replace: string, line: number, offset: number, length: number): void; removeFile(filename: string): Promise; renameFile(oldPath: string, newPath: string): Promise; searchFile(query: string): Promise; readDiff(revisions: string | string[], paths?: string | string[]): Promise; readCommitDiff(hash: string, paths?: string | string[]): Promise; readHistory(path?: string | null, offset?: number): Promise; getReleaseList(page?: number): Promise>; getReleaseStatus(): Promise; getReleaseDetail(id: number): Promise; saveRelease(data: { message: string; }): Promise; retryRelease(id: number, type: string): Promise; getLastRelease(): Promise; readBlobFile(ref: string, file: string): Promise; discard(path?: string): Promise; sync(): void; commit(message: string, release: boolean): void; setTourVersion(name: string, version: string): void; resolve(files: { [index: string]: string; }): Promise; private sendMessageAsync; private sendMessage; } export declare let socket: Socket; export declare function createSocket(options: SocketSettings, callback?: (socket: Socket) => void): Promise; export {};