@kya-os/cli
Version:
CLI for MCP-I setup and management
104 lines • 3.05 kB
TypeScript
/**
* 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