/**
 * Copyright (c) 2025, Oracle and/or its affiliates.
 * All rights reserved
 * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
 */
import { ResultPromise } from 'execa';
/**
 * Wrapper class to simplify the CLI testing and simulating User interactions
 */
export declare class CLI {
    private cliInstance;
    /**
     * Constructor of the CLI with an execa instance (this.cliInstance)
     * @param {string[]} flags list of flags to initialize the CLI
     * @param {boolean} endPipe whether to end the CLI pipe or not
     */
    constructor(flags?: string[], endPipe?: boolean);
    /**
     * static method to retrieve a new execa CLI Instance
     * @param {string[]} flags list of flags to initialize the CLI
     * @param {boolean} endPipe whether to end the CLI pipe or not
     * @returns {ResultPromise}
     */
    static get(flags?: string[], endPipe?: boolean): ResultPromise;
    /**
     * Get the internal CLI Instance
     * @returns {ResultPromise}
     */
    getCli(): ResultPromise;
    /**
     * Simulate user input
     * @param {string[]} actions list of user input
     * @returns {ResultPromise}
     */
    userInput(actions: string[]): ResultPromise;
}
