import Input from './input';
import { TextElement } from './reconciler';
import Screen from './screen';
import Term from './term';
import { type SpawnSyncOptions, type SpawnSyncReturns } from 'node:child_process';
import { type ReactElement } from 'react';
declare class Renderer {
    #private;
    container: TextElement;
    screen: Screen;
    input: Input;
    term: Term;
    reconciler: any;
    callback: (value: any) => void;
    throttleAt: number;
    throttleTimeout: NodeJS.Timeout;
    render(reactElement: ReactElement, options?: {
        fullscreen: boolean;
        print: boolean;
    }): void;
    inline(reactElement: ReactElement, options?: {
        fullscreen: boolean;
        print: boolean;
    }): void;
    prompt<T>(reactElement: ReactElement, options?: {
        fullscreen: boolean;
        print: boolean;
    }): Promise<T>;
    print(reactElement: ReactElement, options?: {
        fullscreen: boolean;
        print: boolean;
    }): Promise<unknown>;
    frame(reactElement: ReactElement, options?: {
        fullscreen: boolean;
        print: boolean;
    }): Promise<unknown>;
    terminate(value: any): void;
    spawnSync(command: string, args: ReadonlyArray<string>, options: SpawnSyncOptions): SpawnSyncReturns<string | Buffer>;
    bell(): void;
    exit(code?: number | any): void;
}
declare const _default: Renderer;
export default _default;
