///
///
import { IncomingMessage } from 'http';
import { Readable } from 'stream';
import { Logger } from './../../service/logger/logger';
import { InstanceOptions, IOResponse, RequestTracingConfig } from '../../HttpClient';
import { BucketMetadata, FileListItem, VBaseSaveResponse } from '../../responses';
import { IOContext } from '../../service/worker/runtime/typings';
import { InfraClient } from './InfraClient';
export declare class VBase extends InfraClient {
constructor(context: IOContext, options?: InstanceOptions);
getBucket: (bucket: string, tracingConfig?: RequestTracingConfig) => Promise;
resetBucket: (bucket: string, tracingConfig?: RequestTracingConfig) => Promise>;
listFiles: (bucket: string, opts?: string | VBaseOptions, tracingConfig?: RequestTracingConfig) => Promise;
getFile: (bucket: string, path: string, tracingConfig?: RequestTracingConfig) => Promise<{
data: Buffer;
headers: any;
}>;
getJSON: (bucket: string, path: string, nullIfNotFound?: boolean, conflictsResolver?: ConflictsResolver | undefined, tracingConfig?: RequestTracingConfig) => Promise;
getRawJSON: (bucket: string, path: string, nullIfNotFound?: boolean, conflictsResolver?: ConflictsResolver | undefined, tracingConfig?: RequestTracingConfig) => Promise>;
getFileStream: (bucket: string, path: string, tracingConfig?: RequestTracingConfig) => Promise;
saveFile: (bucket: string, path: string, stream: Readable, gzip?: boolean, ttl?: number, tracingConfig?: RequestTracingConfig, ifMatch?: string) => Promise;
getFileMetadata: (bucket: string, path: string, tracingConfig?: RequestTracingConfig) => Promise>;
saveJSON: (bucket: string, path: string, data: T, tracingConfig?: RequestTracingConfig, ifMatch?: string) => Promise;
saveZippedContent: (bucket: string, path: string, stream: Readable, tracingConfig?: RequestTracingConfig, ifMatch?: string) => Promise;
deleteFile: (bucket: string, path: string, tracingConfig?: RequestTracingConfig, ifMatch?: string) => Promise>;
getConflicts: (bucket: string, tracingConfig?: RequestTracingConfig) => Promise;
resolveConflict: (bucket: string, path: string, content: any, tracingConfig?: RequestTracingConfig) => Promise;
private saveContent;
}
export interface BucketFileList {
data: FileListItem[];
next: string;
smartCacheHeaders: any;
}
export interface VBaseOptions {
prefix?: string;
next?: string;
limit?: number;
}
export interface VBaseSaveOptions {
gzip?: boolean;
unzip?: boolean;
ttl?: number;
}
export interface VBaseConflictData {
path: string;
base: VBaseConflict;
master: VBaseConflict;
mine: VBaseConflict;
}
export interface VBaseConflict {
contentOmitted: boolean;
deleted: boolean;
mimeType: string;
parsedContent?: any;
content: string;
}
export interface ConflictsResolver {
resolve: (logger?: Logger) => T | Promise;
}