import { PorjectSchema, IFileSchema, TemplateDescription } from './types';
import { IFile } from './models';
import { Engine } from './Engine';
export declare abstract class Service {
    abstract loadProject(engine: Engine, project?: PorjectSchema): Promise<PorjectSchema>;
    abstract getFile(engine: Engine, id: string): Promise<IFileSchema>;
    abstract createFile(engine: Engine, file: IFile): Promise<boolean>;
    abstract updateFile(engine: Engine, file: IFile): Promise<boolean>;
    abstract removeFile(engine: Engine, file: IFile): Promise<boolean>;
    abstract updateProject(engine: Engine, project: PorjectSchema): Promise<PorjectSchema>;
    abstract saveHistory(engine: Engine, file: IFile): Promise<boolean>;
    abstract removeHistory(engine: Engine, file: IFile, id: string): Promise<boolean>;
    abstract getFileHistories(engine: Engine, id: string): Promise<string[]>;
    abstract getHistory(engine: Engine, fileId: string, id: string): Promise<IFileSchema>;
    abstract removeTemplate(engine: Engine, name: string): Promise<boolean>;
    abstract addTemplate(engine: Engine, template: TemplateDescription): Promise<boolean>;
    abstract getTemplates(engine: Engine): Promise<TemplateDescription[]>;
}
