/**
 * Valtech Pattern System — motifs + palettes.
 *
 * Pure data + helpers, sin dependencias Angular. Reusable desde Node/scripts
 * (e.g., generate static thumbnails) o desde el componente `val-pattern`.
 *
 * Original spec: `assets/Valtech Pattern System.html` (single-page demo).
 * Cada motif es función `(fill: string) => string` que devuelve SVG inner
 * markup. Tile es 100x100 unidades; el motif se renderiza dentro de un `<g
 * transform="translate(col*100 row*100)">` con un `<rect width=100 height=100
 * fill=bg/>` de fondo.
 */
export type PatternMotifKey = 'chev-r' | 'chev-l' | 'chev-d' | 'chev-u' | 'tri-tl' | 'tri-tr' | 'tri-bl' | 'tri-br' | 'solid' | 'diamond' | 'small-r' | 'small-l' | 'arrow-r' | 'arrow-l' | 'house-d' | 'half-l' | 'half-t' | 'circle' | 'circle-sm' | 'dot' | 'cross' | 'x-mark' | 'slash-r' | 'slash-l' | 'corner-tl' | 'corner-tr' | 'corner-bl' | 'corner-br' | 'underscore' | 'num-0' | 'num-1' | 'num-2' | 'num-3' | 'num-4' | 'num-5' | 'num-6' | 'num-7' | 'num-8' | 'num-9';
export declare const PATTERN_MOTIFS: Record<PatternMotifKey, (fg: string) => string>;
export declare const MOTIF_KEYS: PatternMotifKey[];
/** Chevron family — orientaciones + variantes pequeñas. */
export declare const CHEV_KEYS: PatternMotifKey[];
/** Stroke family — líneas, cruces y el guión bajo del logo `>_`. */
export declare const STROKE_KEYS: PatternMotifKey[];
/** Numeric family — dígitos 0-9 en monospace bold. */
export declare const NUM_KEYS: PatternMotifKey[];
/** Circle / dot family — formas curvas centradas. */
export declare const CIRCLE_KEYS: PatternMotifKey[];
/** Diamond solo — forma geométrica angular centrada. */
export declare const SHAPE_KEYS: PatternMotifKey[];
/** Triangle / half-fill family. */
export declare const TRI_KEYS: PatternMotifKey[];
/** Corner arc family — mezcla suave con triangles. */
export declare const CORNER_KEYS: PatternMotifKey[];
/** No-foreground tiles — solo rect de fondo. */
export declare const SOLID_KEYS: PatternMotifKey[];
/** Built-in palettes — 8 colores dark → light. */
export type PatternPaletteKey = 'purple' | 'ink' | 'lavender' | 'midnight' | 'ember' | 'forest' | 'rose' | 'gold' | 'mono' | 'teal' | 'ocean' | 'violet' | 'dusk' | 'slate';
export declare const PATTERN_PALETTES: Record<PatternPaletteKey, string[]>;
/**
 * Preset de composición del patrón. Controla qué familias predominan.
 *
 * - `branded`   → Chevrons dominantes (identidad Valtech `>_`). Default.
 * - `geometric` → Triángulos, esquinas y círculos. Más arquitectónico.
 * - `minimal`   → Espacios sólidos con trazos sutiles. Limpio, corporativo.
 * - `dense`     → Mezcla rica de todas las familias. Máxima textura.
 * - `code`      → Números, underscore y chevrons. Look de terminal.
 */
export type PatternStyleKey = 'branded' | 'geometric' | 'minimal' | 'dense' | 'code';
export interface PatternDensityConfig {
    /** Probabilidad de chevron family. */
    chev: number;
    /** Probabilidad de stroke family (cross, x, slash, underscore). */
    stroke: number;
    /** Probabilidad de círculos. */
    circle: number;
    /** Probabilidad de diamond. */
    shape: number;
    /** Probabilidad de solid (espacio vacío). */
    solid: number;
    /** Probabilidad de numeric family (0-9). Default: 0. */
    num?: number;
}
export declare const PATTERN_STYLE_CONFIGS: Record<PatternStyleKey, PatternDensityConfig>;
/**
 * Mulberry32 seeded RNG — devuelve función `()=>[0,1)`.
 * Deterministic: mismo seed → misma secuencia.
 */
export declare function mulberry32(seed: number): () => number;
export interface PatternGenConfig {
    cols: number;
    rows: number;
    seed: number;
    palette: string[];
    chevronDensity?: number;
    style?: PatternStyleKey;
    /** Si true, cada tile recibe una rotación aleatoria [0/90/180/270°]. */
    tileRotation?: boolean;
}
export interface PatternTile {
    motif: PatternMotifKey;
    bg: string;
    fg: string;
    rot?: 0 | 90 | 180 | 270;
}
/**
 * Genera UN tile respetando densidades de familia + contraste de palette.
 * Acepta un config opcional de densidades (de PatternStyleKey o chevronDensity legacy).
 */
export declare function generateRandomTile(palette: string[], chevronDensity?: number, rng?: () => number, densityConfig?: PatternDensityConfig): PatternTile;
/** Genera matriz completa de tiles. */
export declare function generatePatternTiles(cfg: PatternGenConfig): PatternTile[];
/**
 * Renderiza el inner SVG (sin el `<svg>` root) para una matriz de tiles.
 */
export declare function renderPatternSvgInner(tiles: PatternTile[], cols: number, baseColor: string): string;
