/**
 * Utility functions for terminal effects
 */
import { TerminalCapabilities, TerminalDimensions, Color, RGBColor, XTermColor } from "./types.js";
/**
 * ANSI escape codes
 */
export declare const ANSI: {
    reset: string;
    cursor: {
        hide: string;
        show: string;
        save: string;
        restore: string;
        home: string;
        moveTo: (x: number, y: number) => string;
    };
    clear: {
        screen: string;
        line: string;
        toEnd: string;
        toStart: string;
    };
    color: {
        fg: (color: Color) => string;
        bg: (color: Color) => string;
    };
};
/**
 * Detect terminal capabilities
 */
export declare function detectTerminalCapabilities(): TerminalCapabilities;
/**
 * Get terminal dimensions
 */
export declare function getTerminalDimensions(): TerminalDimensions;
/**
 * Convert RGB hex to XTerm-256 color
 * Based on the algorithm from https://github.com/Qix-/color-convert
 */
export declare function rgbToXterm(hex: RGBColor): XTermColor;
/**
 * Strip ANSI codes from string
 */
export declare function stripAnsi(str: string): string;
/**
 * Measure the visible length of a string (excluding ANSI codes)
 */
export declare function measureString(str: string): number;
/**
 * Pad string to specified width (accounting for ANSI codes)
 */
export declare function padString(str: string, width: number, align?: "left" | "right" | "center"): string;
/**
 * Create a buffer for double-buffered rendering
 */
export declare class RenderBuffer {
    private buffer;
    private width;
    private height;
    constructor(width: number, height: number);
    clear(): void;
    setChar(x: number, y: number, char: string, color?: string): void;
    toString(): string;
    getLines(): string[];
}
/**
 * Sleep for specified milliseconds
 */
export declare function sleep(ms: number): Promise<void>;
/**
 * Calculate FPS delay from frame rate
 */
export declare function calculateFrameDelay(fps: number): number;
/**
 * Easing functions for smooth animations
 */
export declare const Easing: {
    linear: (t: number) => number;
    easeIn: (t: number) => number;
    easeOut: (t: number) => number;
    easeInOut: (t: number) => number;
    easeInCubic: (t: number) => number;
    easeOutCubic: (t: number) => number;
    easeInOutCubic: (t: number) => number;
    easeInOutSine: (t: number) => number;
};
export declare const easeInQuad: (t: number) => number;
export declare const easeOutQuad: (t: number) => number;
export declare const easeInOutQuad: (t: number) => number;
export declare const easeInOutSine: (t: number) => number;
/**
 * Interpolate between two values
 */
export declare function lerp(start: number, end: number, t: number): number;
/**
 * Clamp a value between min and max
 */
export declare function clamp(value: number, min: number, max: number): number;
/**
 * Create a gradient between two colors
 */
export declare function createGradient(startColor: RGBColor, endColor: RGBColor, steps: number): RGBColor[];
//# sourceMappingURL=utils.d.ts.map