import type { Subject } from 'rxjs';
import type { ITask } from '../domain';
export declare class TaskReader {
    private static activeStatuses;
    static getTasks(applicationName: string, statuses?: string[], limitPerPage?: number, page?: number): PromiseLike<ITask[]>;
    static getRunningTasks(applicationName: string): PromiseLike<ITask[]>;
    static getTask(taskId: string): PromiseLike<ITask>;
    static waitUntilTaskMatches(task: ITask, closure: (task: ITask) => boolean, failureClosure?: (task: ITask) => boolean, interval?: number, notifier?: Subject<void>): PromiseLike<ITask>;
    static waitUntilTaskCompletes(task: ITask, interval?: number, notifier?: Subject<void>): PromiseLike<ITask>;
    /**
     * When polling for a match, (most of) the new task's properties are copied into the original task; if you need
     * some other property, you'll need to update this method
     */
    private static updateTask;
    private static setTaskProperties;
}
