import type { BashOptions } from "../Bash.js";
import { Bash } from "../Bash.js";
import type { ExecResult } from "../types.js";
export interface TaggedShell {
    (strings: TemplateStringsArray, ...values: unknown[]): Promise<ExecResult>;
    /** Access the underlying Bash instance */
    readonly bash: Bash;
    /** Change working directory for subsequent commands */
    cd(path: string): Promise<void>;
}
/**
 * Create a tagged template shell for ergonomic bash execution.
 *
 * @example
 * ```ts
 * const $ = createShell();
 * const result = await $`echo hello ${name}`;
 * console.log(result.stdout); // "hello world\n"
 * ```
 */
export declare function createShell(options?: BashOptions): TaggedShell;
