import { IBetterLogger } from "@codiac.io/codiac-common";
import { TerminalCommandRequest } from "../../message-contracts/terminal-command-request";
import { IMessageReceivedMeta, IMessagingClient } from "../../uilogic/i-messaging-client";
import { TerminalUtils } from "../terminal-utils";
import { CliEnviro } from "../entities";
export declare class LocalCommandRunner {
    private msgClient;
    private cliEnviro;
    private termUtils;
    private logger;
    constructor(msgClient: IMessagingClient, cliEnviro: CliEnviro, termUtils: TerminalUtils, logger: IBetterLogger);
    private readonly subject;
    private localTerminalCommandRunnerHandlerId;
    /** IMPORTANT! This method requires the client to be connected first. */
    listen(): void;
    protected cliCommandHandler(err: Error | null, msg: TerminalCommandRequest, meta: IMessageReceivedMeta, raw?: any): Promise<void>;
    /** Performs token replacement on the given string using loDash's html view engine.
     * This method DOES NOT mutate the given string; it only returns the new value.
     *
     * **Token delimiters**:
     * * interpolate:  `<%= user %>`  or `${user}`
     * * html-escape:  `<%- value %>`
     * * backslashes to treat delimiters as plain text: `<%= "\\<%- value %\\>" %>`
     *
     * For more examples, see: [LoDash template command](https://lodash.com/docs/4.17.15#template)
     * &nbsp;
     *
     * **EXAMPLE**: Use the "interpolate" delimiter to create a compiled template.
     * ```typescript
     * let output = performTokenReplacements('identifier for this string', 'hello <%= user %>!', { 'user': 'fred' });
     * ```
     * ...yields...
     * ```typescript
     * 'hello fred!'
     * ```
  
     * Errors are logged and ignored.
     *
     */
    private performTokenReplacements;
}
