// @flow export interface IVerdaccioConfig { storagePath: string; configPath: string; domainPath: string; port: number; } export interface IRequestPromise { status(reason: any): any; body_ok(reason: any): any; body_error(reason: any): any; request(reason: any): any; response(reason: any): any; send(reason: any): any; } export interface IServerProcess { bridge: IServerBridge; config: IVerdaccioConfig; childFork: any; isDebug: boolean; silence: boolean; init(): Promise; stop(): void; } declare class verdaccio$PromiseAssert extends Promise { constructor(options: any): IRequestPromise; } export interface IServerBridge { url: string; userAgent: string; authstr: string; request(options: any): typeof verdaccio$PromiseAssert; auth(name: string, password: string): IRequestPromise; logout(token: string): Promise; auth(name: string, password: string): IRequestPromise; getPackage(name: string): Promise; putPackage(name: string, data: any): Promise; putVersion(name: string, version: string, data: any): Promise; getTarball(name: string, filename: string): Promise; putTarball(name: string, filename: string, data: any): Promise; removeTarball(name: string): Promise; removeSingleTarball(name: string, filename: string): Promise; addTag(name: string, tag: string, version: string): Promise; putTarballIncomplete(name: string, filename: string, data: any, size: number, cb: Function): Promise; addPackage(name: string): Promise; whoami(): Promise; ping(): Promise; debug(): IRequestPromise; }