import { OnDestroy } from '@angular/core';
import { SafeHtml } from '@angular/platform-browser';
import { PatternMetadata } from './types';
import * as i0 from "@angular/core";
/**
 * `val-pattern`
 *
 * Componente de fondo geométrico inspirado en el sistema Valtech. Renderiza un
 * grid de tiles 100×100 con motifs (chevrons, triangles, diamonds, arrows) en
 * un SVG inline. Determinista vía `seed` o animado vía `reshuffle`.
 *
 * Cero dependencias externas — todo SVG.
 *
 * @example Como fondo de card (CSS absolute):
 * ```scss
 * .card { position: relative; overflow: hidden; }
 * .card val-pattern { position: absolute; inset: 0; z-index: 0; opacity: 0.4; }
 * .card .content { position: relative; z-index: 1; }
 * ```
 *
 * ```html
 * <div class="card">
 *   <val-pattern [props]="{ palette: 'purple', cols: 6, rows: 3, seed: 42 }" />
 *   <div class="content">Tu contenido aquí</div>
 * </div>
 * ```
 *
 * @example Como background animado (hero/login):
 * ```html
 * <val-pattern [props]="{ palette: 'lavender', cols: 16, rows: 8, animated: true }" />
 * ```
 */
export declare class PatternComponent implements OnDestroy {
    private sanitizer;
    private ngZone;
    private readonly cols;
    private readonly rows;
    private readonly seed;
    private readonly paletteRef;
    private readonly chevronDensity;
    private readonly patternStyle;
    private readonly preserveAspect;
    private readonly animated;
    private readonly reshuffleInterval;
    private readonly tilesPerTick;
    private readonly tileRotation;
    private timer?;
    set props(value: PatternMetadata | undefined);
    /**
     * Tiles signal — mutable. Se regenera completa cuando cambia seed/cols/rows/
     * palette/density. En modo animated, tiles individuales se sobrescriben sin
     * tocar el resto (efecto staggered).
     */
    private readonly tiles;
    /** SVG completo como string sanitized para `[innerHTML]`. */
    readonly svgHtml: import("@angular/core").Signal<SafeHtml>;
    constructor();
    /**
     * Reemplaza `count` tiles random del grid actual con tiles nuevos generados.
     * Usado para staggered reshuffle (opt-in via `tilesPerTick > 0`).
     */
    private mutateRandomTiles;
    ngOnDestroy(): void;
    private resolvePalette;
    private randomSeed;
    static ɵfac: i0.ɵɵFactoryDeclaration<PatternComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PatternComponent, "val-pattern", never, { "props": { "alias": "props"; "required": false; }; }, {}, never, never, true, never>;
}
