import { IBetterLogger } from "@codiac.io/codiac-common";
import { Result } from '@codiac.io/codiac-common/contracts';
import { AsyncTrigger } from "./lrp-watcher-utils";
import { IMessagingClient } from "@codiac.io/codiac-messaging/dist/nats/client";
/** Triggers and renders real time status for a Long Running Process using a predefined call tree.
 *
 * That is, it fires an async request to trigger the process,
 * then monitors a socket for real time status messages,
 * and renders them in sequential order.
 */
export declare class LrpWatcherPredef {
    private msgClient;
    private logger;
    constructor(msgClient: IMessagingClient, logger: IBetterLogger);
    private readonly qmgr;
    private statusHandlerId;
    private removeStatusListeners;
    triggerAndWatch<TResult extends Result>(trigger: AsyncTrigger): Promise<TResult>;
    /** Throws when not successful or when no ack is returned. */
    private invokeOperation;
    private buildStatusView;
    /** DEVNOTE:  This actually returns a DELEGATE, not a concrete Listr!!!
     *            The delegate builds either a concrete task handler or a set of subtask builder delegates.
     */
    private toListr;
    /** Creates the task handler for a single logical task Listr.    */
    private createLeafHandler;
    /** Creates a listr object comprised of a single logical task.    */
    private createLeafTask;
}
