import { Project } from '../project';
import { ExponentialSaveCompactor, ISaveCompactor } from './compator';
/**
 * ISaveFile is a listed entry returned from Saves.list.
 */
export interface ISaveFile {
    name: string;
    savedAt: Date;
}
export declare const defaultCompactor: ExponentialSaveCompactor;
/**
 * Saves manages project save files.
 */
export declare class Saves {
    private readonly project;
    private readonly compactor;
    constructor(project: Project, compactor?: ISaveCompactor);
    /**
     * Appends as the given blob as a file save.
     */
    append(blob: any, now?: number): Promise<void>;
    /**
     * List enumerates all current save files.
     */
    list(): Promise<ISaveFile[]>;
    /**
     * Load opens a save file.
     */
    load(file: string): Promise<object>;
    /**
     * Loads the most recent save file.
     */
    loadLatest(): Promise<object | undefined>;
    private listFiles(dir);
    private trimFiles(dir, now);
    private writeBlob(dir, blob, now?);
    private getSaveDir();
}
