import { TaskOperations } from '../interfaces/task-operations';
import { Observable, Subject } from 'rxjs';
/**
 * An implementation of the {@link TaskOperations} interface that provides a Subject for both operations.
 */
export declare class SubjectTaskOperations implements TaskOperations {
    protected _open: Subject<void>;
    protected _close: Subject<void>;
    protected _reload: Subject<void>;
    protected _forceReload: Subject<void>;
    constructor();
    /**
     * Emits into the [open$]{@link SubjectTaskOperations#open$} stream.
     */
    open(): void;
    /**
     * Emits into the [close$]{@link SubjectTaskOperations#close$} stream.
     */
    close(): void;
    /**
     * Emits into the [reload$]{@link SubjectTaskOperations#reload$} stream.
     */
    reload(): void;
    /**
     * Emits into the [forceReload$]{@link SubjectTaskOperations#forceReload$} stream.
     */
    forceReload(): void;
    get open$(): Observable<void>;
    get close$(): Observable<void>;
    get reload$(): Observable<void>;
    get forceReload$(): Observable<void>;
    /**
     * Completes the underlying streams
     */
    destroy(): void;
}
