import { OnInit, OnDestroy, AfterViewInit, ElementRef, OnChanges, SimpleChanges, NgZone } from '@angular/core';
import * as i0 from "@angular/core";
export declare type NcAnimationTypeType = 'rotate' | 'hover' | '3drotate';
export interface NcOffset {
    x: number;
    y: number;
}
export declare class PrismBackgroundComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {
    private ngZone;
    containerRef: ElementRef<HTMLDivElement>;
    /** 棱镜高度（1-8） */
    ncHeight: number;
    /** 棱镜基础宽度（1-8） */
    ncBaseWidth: number;
    /** 动画类型：rotate, hover, 3drotate */
    ncAnimationType: NcAnimationTypeType;
    /** 发光强度（0-3） */
    ncGlow: number;
    /** 偏移量 {x, y} */
    ncOffset: NcOffset;
    /** 噪点强度（0-1） */
    ncNoise: number;
    /** 画布是否具有 alpha 通道（透明背景） */
    private _transparent;
    set ncTransparent(val: boolean | string);
    get ncTransparent(): boolean;
    /** 棱镜在屏幕空间中的整体比例（1-5） */
    ncScale: number;
    /** 色相偏移（-3.14-3.14） */
    ncHueShift: number;
    /** 颜色变化频率（0-4） */
    ncColorFrequency: number;
    /** 悬停反馈强度 */
    ncHoverStrength: number;
    /** 悬停缓动系数（0-1，数值越高反应越灵敏） */
    ncInertia: number;
    /** 在光泽之上叠加额外的光晕效果（0.5-2） */
    ncBloom: number;
    /** 若不在屏幕中，是否挂起以节省性能 */
    private _suspendWhenOffscreen;
    set ncSuspendWhenOffscreen(val: boolean | string);
    get ncSuspendWhenOffscreen(): boolean;
    /** 动画速度（0-2） */
    ncTimeScale: number;
    /** 背景颜色 */
    ncBgColor: string;
    private renderer;
    private camera;
    private scene;
    private material;
    private mesh;
    private resizeObserver;
    private intersectionObserver;
    private rafId;
    private dpr;
    private pointer;
    private yaw;
    private pitch;
    private roll;
    private targetYaw;
    private targetPitch;
    private wX;
    private wY;
    private wZ;
    private phX;
    private phZ;
    private isVisible;
    private t0;
    constructor(ngZone: NgZone);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    private initWebGL;
    private updateUniforms;
    private setupResizeObserver;
    private setupIntersectionObserver;
    private lerp;
    private setMat3FromEuler;
    private renderLoop;
    private startRAF;
    private stopRAF;
    private cleanup;
    private get geometry();
    onPointerMove(e: PointerEvent): void;
    onMouseLeave(): void;
    onBlur(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PrismBackgroundComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PrismBackgroundComponent, "nc-prism-background", never, { "ncHeight": "ncHeight"; "ncBaseWidth": "ncBaseWidth"; "ncAnimationType": "ncAnimationType"; "ncGlow": "ncGlow"; "ncOffset": "ncOffset"; "ncNoise": "ncNoise"; "ncTransparent": "ncTransparent"; "ncScale": "ncScale"; "ncHueShift": "ncHueShift"; "ncColorFrequency": "ncColorFrequency"; "ncHoverStrength": "ncHoverStrength"; "ncInertia": "ncInertia"; "ncBloom": "ncBloom"; "ncSuspendWhenOffscreen": "ncSuspendWhenOffscreen"; "ncTimeScale": "ncTimeScale"; "ncBgColor": "ncBgColor"; }, {}, never, ["*"]>;
}
