/**
 * Gradient System for Terminal Effects
 * Provides comprehensive gradient color mapping capabilities
 */
import { Coordinate, TerminalDimensions } from "./types.js";
/**
 * Gradient direction options
 */
export declare enum GradientDirection {
    HORIZONTAL = "horizontal",
    VERTICAL = "vertical",
    DIAGONAL = "diagonal",
    RADIAL = "radial",
    DIAGONAL_REVERSE = "diagonal_reverse"
}
/**
 * Gradient configuration
 */
export interface GradientConfig {
    /** Array of color stops */
    stops: string[];
    /** Number of steps between each stop */
    steps?: number;
    /** Direction of the gradient */
    direction?: GradientDirection;
    /** Easing function for color interpolation */
    easingFn?: (t: number) => number;
}
/**
 * Gradient class for creating color transitions
 */
export declare class Gradient {
    private colorStops;
    private steps;
    private direction;
    private easingFn;
    private spectrum;
    constructor(config: GradientConfig);
    /**
     * Generate the full color spectrum
     */
    private generateSpectrum;
    /**
     * Interpolate between two colors
     */
    private interpolateColors;
    /**
     * Build coordinate-to-color mapping for a canvas area
     */
    buildCoordinateColorMapping(dimensions: TerminalDimensions, bounds?: {
        top?: number;
        bottom?: number;
        left?: number;
        right?: number;
    }): Map<string, string>;
    /**
     * Get color at a specific position based on gradient direction
     */
    private getColorAtPosition;
    /**
     * Get color for a specific coordinate
     */
    getColorForCoordinate(coord: Coordinate, dimensions: TerminalDimensions): string;
    /**
     * Get the generated color spectrum
     */
    getSpectrum(): string[];
    /**
     * Apply gradient to a string (character by character)
     */
    applyToString(text: string): Array<{
        char: string;
        color: string;
    }>;
}
/**
 * Predefined gradients
 */
export declare const GRADIENTS: {
    FIRE: {
        stops: string[];
        steps: number;
    };
    OCEAN: {
        stops: string[];
        steps: number;
    };
    MATRIX: {
        stops: string[];
        steps: number;
    };
    SUNSET: {
        stops: string[];
        steps: number;
    };
    COOL: {
        stops: string[];
        steps: number;
    };
    MONOCHROME: {
        stops: string[];
        steps: number;
    };
    RAINBOW: {
        stops: string[];
        steps: number;
    };
};
/**
 * Easing functions for gradient interpolation
 */
export declare const EASING: {
    linear: (t: number) => number;
    inQuad: (t: number) => number;
    outQuad: (t: number) => number;
    inOutQuad: (t: number) => number;
    inCubic: (t: number) => number;
    outCubic: (t: number) => number;
    inOutCubic: (t: number) => number;
    inExpo: (t: number) => number;
    outExpo: (t: number) => number;
    inOutExpo: (t: number) => number;
    inSine: (t: number) => number;
    outSine: (t: number) => number;
    inOutSine: (t: number) => number;
};
/**
 * Helper function to create a gradient from preset
 */
export declare function createGradient(preset: keyof typeof GRADIENTS, direction?: GradientDirection, easingFn?: (t: number) => number): Gradient;
//# sourceMappingURL=gradient.d.ts.map