import { Http } from '@angular/http';
import { MatSnackBar } from '@angular/material';
import { Store } from '@ngrx/store';
import * as moment from 'moment';
import { Observable } from 'rxjs/Observable';
import { IProject, ProjectService } from '../redux/project';
import { MemorizingSubject } from '../util/memorizingSubject';
export interface ISavedEntry {
    name: string;
    savedAt: moment.Moment;
    ago: string;
}
export interface ISwappedSave {
    backupState: Partial<IProject>;
    loadedSave: string;
}
/**
 * The code component displays the code editor for participants/control state/
 */
export declare class HistoryComponent {
    private readonly store;
    private readonly project;
    private readonly http;
    private readonly snackRef;
    /**
     * When the user has an old save loaded out, we'll stash data about it
     * here so we can reload it again later.
     */
    readonly swappedSave: MemorizingSubject<ISwappedSave | null>;
    /**
     * An enumeration of the available save files.
     */
    readonly saves: Observable<ISavedEntry[]>;
    constructor(store: Store<IProject>, project: ProjectService, http: Http, snackRef: MatSnackBar);
    /**
     * Restores a backed up state.
     */
    loadBackupState(): void;
    /**
     * openSaveFile restores state from a previously saved version.
     */
    openSaveFile(file: string): void;
}
