/**
 * BuddyComponent — TUI component rendering the buddy companion.
 *
 * Renders below the editor with:
 * - 3-frame idle animation cycling at 500ms
 * - Speech bubbles for reactions and name-call responses
 * - Pet hearts animation (2.5s)
 * - Narrow terminal fallback (<100 cols)
 * - Stat display and rarity badge
 */
import type { Component, TUI } from "@dreb/tui";
import type { BuddyState } from "../../../core/buddy/buddy-types.js";
export declare class BuddyComponent implements Component {
    private ui;
    private state;
    private interval;
    private currentFrame;
    private totalFrames;
    private speechText;
    private speechTimeout;
    private isPetting;
    private petTimeout;
    private hearts;
    private thinkingLabel;
    private thinkingDots;
    private static readonly THINKING_DOT_COUNT;
    private cachedLines;
    private cachedWidth;
    private cachedVersion;
    private renderVersion;
    constructor(ui: TUI, state: BuddyState);
    /** Update buddy state (e.g. after reroll) */
    updateState(state: BuddyState): void;
    /** Show a speech bubble with text */
    showSpeech(text: string): void;
    /** Trigger pet animation */
    pet(): void;
    /** Show a pulsing thinking indicator with optional label */
    showThinking(label?: string): void;
    /** Hide the thinking indicator */
    hideThinking(): void;
    invalidate(): void;
    render(width: number): string[];
    dispose(): void;
    private renderFull;
    private renderNarrow;
    private startAnimation;
    private stopAnimation;
    private bumpVersion;
    private statBar;
    private rarityColor;
    private formatSpeechBubble;
    /** Render inline markdown tokens (bold, italic, code) to ANSI-styled text */
    private renderInlineMarkdown;
    /** Recursively render marked inline tokens to ANSI-styled strings */
    private renderInlineTokens;
}
//# sourceMappingURL=buddy-component.d.ts.map