/** * 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 `` con un `` 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 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; /** * 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; /** * 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 `` root) para una matriz de tiles. */ export declare function renderPatternSvgInner(tiles: PatternTile[], cols: number, baseColor: string): string;