export interface Component {
    onMount?(): void;
    onUnmount?(): void;
    onFocus?(): void;
    onBlur?(): void;
    handleInput?(data: string): void;
    render(width: number): string[];
    invalidate(): void;
}
export interface TUI {
    requestRender?(): void;
    focus?(component: Component | null): void;
}
export type OverlayAnchor = "center" | "top-center" | "bottom-center" | "left-center" | "right-center" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
export interface OverlayMargin {
    left?: number;
    right?: number;
    top?: number;
    bottom?: number;
}
export type SizeValue = number | `${number}%`;
export interface OverlayOptions {
    anchor?: OverlayAnchor;
    row?: SizeValue;
    col?: SizeValue;
    offsetX?: number;
    offsetY?: number;
    margin?: OverlayMargin | number;
    width?: SizeValue;
    minWidth?: number;
    maxHeight?: SizeValue;
    visible?: (termWidth: number, termHeight: number) => boolean;
}
export interface OverlayHandle {
    isHidden(): boolean;
    setHidden(hidden: boolean): void;
    hide(): void;
}
