import { type TextProps } from './components/Text';
import { type TextElement } from './reconciler';
import { type ReactElement } from 'react';
export type Color = number | string | 'Black' | 'Red' | 'Green' | 'Yellow' | 'Blue' | 'Magenta' | 'Cyan' | 'White' | 'BrightBlack' | 'BrightRed' | 'BrightGreen' | 'BrightYellow' | 'BrightBlue' | 'BrightMagenta' | 'BrightCyan' | 'BrightWhite';
export interface Modifier {
    background?: Color;
    color?: Color;
    clear?: boolean;
    bold?: boolean;
    dim?: boolean;
    italic?: boolean;
    underline?: boolean;
    blinking?: boolean;
    inverse?: boolean;
    strikethrough?: boolean;
}
export type Char = [string, Modifier];
interface Bounds {
    x: number;
    y: number;
    x1: number;
    y1: number;
    x2: number;
    y2: number;
}
declare class Screen {
    buffer: Char[][];
    cursor: {
        x: number;
        y: number;
    };
    size: {
        x1: number;
        y1: number;
        x2: number;
        y2: number;
    };
    constructor();
    generateBuffer(): Char[][];
    clearBuffer(): void;
    render(elements: TextElement[]): void;
    stringAt(value: string, limit: number): number;
    renderElement(element: ReactElement | ReactElement[] | any, prevBounds: Bounds, prevProps?: TextProps): void;
    fill(bounds: Bounds, prevBounds: Bounds, modifiers: TextProps): void;
    put(text: string, bounds: Bounds, modifiers: TextProps): number;
    carret(bounds: Bounds): void;
}
export default Screen;
