import { FieldDefinitions } from './../.spruce/schemas/fields/fields.types';
import { ExecutionResults } from '../types/cli.types';
import { GraphicsInterface } from '../types/cli.types';
import { GraphicsTextEffect, ProgressBarOptions, ProgressBarUpdateOptions, ImageDimensions } from '../types/graphicsInterface.types';
export default class SpyInterface implements GraphicsInterface {
    invocations: {
        command: string;
        options?: any;
    }[];
    private cursorPosition;
    private promptResolver?;
    private confirmResolver?;
    private waitForEnterResolver?;
    private promptDefaultValue;
    private term?;
    private startTime;
    private promptTimeout?;
    private error?;
    constructor();
    setTitle(_title: string): void;
    private shouldRenderTestLogs;
    renderWarning(message: string, effects?: GraphicsTextEffect[] | undefined): void;
    renderHint(message: string, effects?: GraphicsTextEffect[] | undefined): void;
    private trackInvocation;
    isWaitingForInput(): boolean;
    reset(): void;
    setError(err: Error): void;
    getLastInvocation(): {
        command: string;
        options?: any;
    };
    sendInput(input: Input): Promise<void>;
    renderSection(options: {
        headline: string;
        lines?: string[] | string[];
        headlineEffects?: GraphicsTextEffect[];
        dividerEffects?: GraphicsTextEffect[];
        bodyEffects?: GraphicsTextEffect[];
        object?: any;
    }): void;
    renderObject(obj: any): void;
    renderError(err: Error): void;
    renderCodeSample(code: string): void;
    renderActionSummary(results: ExecutionResults): void;
    renderHero(message: string, effects?: GraphicsTextEffect[] | undefined): void;
    renderHeadline(message: string, effects: GraphicsTextEffect[], dividerEffects: GraphicsTextEffect[]): void;
    renderDivider(effects?: GraphicsTextEffect[] | undefined): void;
    renderLine(message: string, effects?: GraphicsTextEffect[] | undefined): void;
    private optionallyRenderLine;
    renderImage(path: string, options?: ImageDimensions): Promise<void>;
    renderLines(messages: string[], effects?: GraphicsTextEffect[] | undefined): void;
    prompt<T extends FieldDefinitions>(definition: T): Promise<any>;
    startLoading(message?: string | undefined): void;
    stopLoading(): void;
    waitForEnter(message?: string | undefined): Promise<void>;
    waitForInput(): Promise<void>;
    confirm(question: string): Promise<boolean>;
    clear(): void;
    renderProgressBar(options: ProgressBarOptions): void;
    updateProgressBar(options: ProgressBarUpdateOptions): void;
    removeProgressBar(): void;
    getCursorPosition(): Promise<{
        x: number;
        y: number;
    } | null>;
    setCursorPosition(pos: {
        x: number;
        y: number;
    }): void;
    moveCursorTo(x: number, y: number): void;
    clearBelowCursor(): void;
}
interface FilePromptInput {
    path: string;
}
type Input = string | string[] | FilePromptInput;
export {};
