import { Observable } from 'rxjs';
import { services } from 'typescript-angular-utilities';
import TimeoutService = services.timeout.TimeoutService;
import { AsyncHelper, IWaitValue } from '../async/async.service';
export declare const COMPLETE_MESSAGE_DURATION: number;
export interface IAutosaveActionService {
    waitOn(waitOn: IWaitValue<any>): Observable<any>;
    saving$: Observable<boolean>;
    complete$: Observable<boolean>;
    successful$: Observable<boolean>;
}
export declare class AutosaveActionService implements IAutosaveActionService {
    timeoutService: TimeoutService;
    asyncService: AsyncHelper;
    constructor(timeoutService: TimeoutService, asyncService: AsyncHelper);
    private _saving$;
    private _complete$;
    private _successful$;
    readonly saving$: Observable<boolean>;
    readonly complete$: Observable<boolean>;
    readonly successful$: Observable<boolean>;
    waitOn<T>(waitOn: IWaitValue<T>): Observable<T>;
    private autosaveSuccessful;
    private autosaveFailed;
    private resolveAutosave;
}
