/// <reference types="node" />
import { Command } from 'commander';
import { accessSync, readFileSync } from 'fs';
import { Conversation, ReorderedMessageDelayer, SessionConfig, WebMessengerSession } from '@ovotech/genesys-web-messaging-tester';
import { Ui } from './ui';
export interface ScriptedTestCommandDependencies {
    command?: Command;
    ui?: Ui;
    reorderedMessageDelayerFactory?: (delayBeforeEmittingInMs: number) => ReorderedMessageDelayer;
    webMessengerSessionFactory?: (sessionConfig: SessionConfig, reorderedMessageDelayer: ReorderedMessageDelayer) => WebMessengerSession;
    conversationFactory?: (session: WebMessengerSession) => Conversation;
    fsReadFileSync?: typeof readFileSync;
    fsAccessSync?: typeof accessSync;
    /**
     * Quiet mode is used for non-TTY and CI environments, where outputting the progress
     * of a test would cause too much noise in the UI
     */
    quietMode?: boolean;
}
export declare function createScriptedTestCommand({ command, ui, reorderedMessageDelayerFactory, webMessengerSessionFactory, conversationFactory, fsReadFileSync, fsAccessSync, quietMode, }?: ScriptedTestCommandDependencies): Command;
