/**
 * Banner Types
 *
 * Type definitions for FIGlet font parsing and ASCII banner generation.
 *
 * @since v1.55.0
 */
import type { Tier } from '../types/auth.js';
/**
 * FIGlet font header information
 * Parsed from the first line of a .flf file
 */
export interface FigletHeader {
    /** Signature (should be "flf2a") */
    signature: string;
    /** Character used as hardblank (usually $ or @) */
    hardblank: string;
    /** Height of each character in lines */
    height: number;
    /** Height from baseline to top (not typically used) */
    baseline: number;
    /** Maximum character width */
    maxLength: number;
    /** Number of comment lines to skip */
    commentLines: number;
    /** Print direction (0 = left-to-right) */
    printDirection: number;
    /** Full layout settings */
    fullLayout?: number;
    /** Codetag count */
    codetagCount?: number;
}
/**
 * A single FIGlet character definition
 */
export interface FigletChar {
    /** The ASCII character this represents */
    char: string;
    /** Character code (ASCII value) */
    code: number;
    /** Array of lines making up the character (height lines) */
    lines: string[];
    /** Width of this character */
    width: number;
}
/**
 * A complete FIGlet font
 */
export interface FigletFont {
    /** Font name/identifier */
    name: string;
    /** Parsed header information */
    header: FigletHeader;
    /** Map of character code to character definition */
    chars: Map<number, FigletChar>;
}
/**
 * Available bundled font names
 */
export type BundledFontName = 'standard' | 'slant' | 'small' | 'mini' | 'banner';
/**
 * Gradient color stop
 */
export interface GradientStop {
    /** Position in gradient (0-1) */
    position: number;
    /** Hex color code */
    color: string;
}
/**
 * Gradient direction for banner coloring
 */
export type GradientDirection = 'horizontal' | 'vertical' | 'diagonal';
/**
 * Banner rendering options
 */
export interface BannerOptions {
    /** Font to use */
    font?: BundledFontName;
    /** Maximum width in characters (default: terminal width) */
    maxWidth?: number;
    /** Gradient colors (requires paid tier) */
    gradient?: GradientStop[];
    /** Gradient direction */
    gradientDirection?: GradientDirection;
    /** Center the banner */
    center?: boolean;
    /** Add padding lines above/below */
    padding?: number;
}
/**
 * Rendered banner result
 */
export interface RenderedBanner {
    /** Array of lines (each line is the full width) */
    lines: string[];
    /** Width of the banner in characters */
    width: number;
    /** Height of the banner in lines */
    height: number;
    /** Whether gradient was applied */
    hasGradient: boolean;
    /** Font used */
    font: BundledFontName;
}
/**
 * Tier-specific banner configuration
 */
export interface TierBannerConfig {
    /** Whether tier can see ASCII banners */
    enabled: boolean;
    /** Available fonts for this tier */
    fonts: BundledFontName[];
    /** Whether gradient is available */
    gradient: boolean;
    /** Available gradient presets */
    gradientPresets: string[];
    /** Whether animations are available */
    animations: boolean;
}
/**
 * Banner configuration by tier
 */
export declare const TIER_BANNER_CONFIG: Record<Tier, TierBannerConfig>;
/**
 * Preset gradient definitions
 */
export declare const GRADIENT_PRESETS: Record<string, GradientStop[]>;
//# sourceMappingURL=banner-types.d.ts.map