import { IFileStorage, IReadFileStorage } from 'fs-relative'; import { ILogger } from 'loggerism'; import { Git, LogLevel } from './git'; export interface IConfig { branchName: string; repoUrl: string; targetPath: string; basePath?: string; } export interface IHistoryOptions { maxCount?: number; skip?: number; } export interface IGitStorage { useVersion(action: (storage: IReadFileStorage, version: string) => Promise, version?: string): Promise; getHistory(path: string, options?: IHistoryOptions): Promise; commitAndPush(meta: { message: string; author?: { name: string; email: string; }; } | string, action: (storage: IFileStorage, version: string) => Promise): Promise<{ result: T; version: string; }>; } export { git, Git, makeTiming, LogLevel } from './git'; export { IFileStorage, IReadFileStorage } from 'fs-relative'; export declare const makeGitStorage: (config: IConfig, git: Git, logger: ILogger, makeReadFileStorage: (basePath: string) => IReadFileStorage, makeFileStorage: (basePath: string) => IFileStorage, timingLogLevel?: LogLevel) => Promise;