import * as React from 'react';
import React__default, { ReactNode, CSSProperties } from 'react';

interface ControlsProps$1 {
    className?: string;
}

interface MinimapProps$1 {
    className?: string;
}

interface GlareProps$1 {
    className?: string;
}

interface SpotlightProps$1 {
    className?: string;
    intensity?: number;
}

interface ContentProps$1 {
    children: React__default.ReactNode;
    className?: string;
}

interface RefractionProps$1 {
    className?: string;
    intensity?: number;
    variant?: 'default' | 'debug';
    colors?: string[];
}

interface WatermarkProps$1 {
    children?: React__default.ReactNode;
    className?: string;
    imageUrl?: string;
    opacity?: number;
}

interface PatternProps$1 {
    children?: React__default.ReactNode;
    className?: string;
    maskUrl?: string;
    maskSize?: 'contain' | 'cover' | string;
    textureUrl?: string;
    opacity?: number;
    mode?: 'composite' | 'texture-only';
    mixBlendMode?: 'hard-light' | 'multiply';
    textureSize?: string;
}

interface ImageLayerProps$1 {
    src: string;
    alt?: string;
    className?: string;
    opacity?: number;
    objectFit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
    scale?: number | string;
    parallax?: boolean;
    style?: React__default.CSSProperties;
}

interface CardProps$1 {
    children: React__default.ReactNode;
    className?: string;
    /**
     * Card width in pixels. Defaults to 260px (via CSS variable --sticker-card-width)
     */
    width?: number;
    /**
     * Card aspect ratio (width/height). Defaults to 5/7 (0.714) - classic card proportions
     */
    aspectRatio?: number;
}

interface SceneProps$1 {
    children: React__default.ReactNode;
    className?: string;
}

interface RootProps$1 {
    children: React__default.ReactNode;
    className?: string;
    style?: React__default.CSSProperties;
}

interface HologramContextType$1 {
    isActive: boolean;
    isExploded: boolean;
    setIsExploded: (exploded: boolean) => void;
    pointerPos: {
        x: string;
        y: string;
    };
    showGlare: boolean;
    cardRef: React__default.RefObject<HTMLElement>;
    minimapRef: React__default.RefObject<HTMLDivElement>;
    sceneRef: React__default.RefObject<HTMLDivElement>;
    rootRef: React__default.RefObject<HTMLDivElement>;
}
declare const useHologram: () => HologramContextType$1;

interface RootProps {
    children: ReactNode;
    className?: string;
    style?: CSSProperties;
}
interface SceneProps {
    children: ReactNode;
    className?: string;
}
interface CardProps {
    children: ReactNode;
    className?: string;
    width?: number;
    aspectRatio?: number;
}
interface ImageLayerProps {
    src: string;
    alt?: string;
    className?: string;
    opacity?: number;
    objectFit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
    scale?: number | string;
    parallax?: boolean;
    style?: React__default.CSSProperties;
}
interface PatternProps {
    children?: ReactNode;
    className?: string;
    maskUrl?: string;
    maskSize?: 'contain' | 'cover' | string;
    textureUrl?: string;
    opacity?: number;
    mode?: 'composite' | 'texture-only';
    mixBlendMode?: 'hard-light' | 'multiply';
    textureSize?: string;
}
interface WatermarkProps {
    children?: ReactNode;
    className?: string;
    imageUrl?: string;
    opacity?: number;
}
interface RefractionProps {
    className?: string;
    intensity?: number;
    variant?: 'default' | 'debug';
    colors?: string[];
}
interface ContentProps {
    children: ReactNode;
    className?: string;
}
interface SpotlightProps {
    className?: string;
    intensity?: number;
}
interface GlareProps {
    className?: string;
}
interface MinimapProps {
    className?: string;
}
interface ControlsProps {
    className?: string;
}
interface PointerPosition {
    x: string;
    y: string;
}
interface HologramContextType {
    isActive: boolean;
    isExploded: boolean;
    setIsExploded: (exploded: boolean) => void;
    pointerPos: PointerPosition;
    showGlare: boolean;
    cardRef: React__default.RefObject<HTMLElement>;
    minimapRef: React__default.RefObject<HTMLDivElement>;
    sceneRef: React__default.RefObject<HTMLDivElement>;
    rootRef: React__default.RefObject<HTMLDivElement>;
}

declare const HologramSticker: {
    Root: React.FC<RootProps$1>;
    Scene: React.ForwardRefExoticComponent<SceneProps$1 & React.RefAttributes<HTMLDivElement>>;
    Card: React.ForwardRefExoticComponent<CardProps$1 & React.RefAttributes<HTMLElement>>;
    ImageLayer: React.FC<ImageLayerProps$1>;
    Pattern: React.FC<PatternProps$1>;
    Watermark: React.FC<WatermarkProps$1>;
    Refraction: React.FC<RefractionProps$1>;
    Content: React.FC<ContentProps$1>;
    Spotlight: React.FC<SpotlightProps$1>;
    Glare: React.FC<GlareProps$1>;
    Minimap: React.FC<MinimapProps$1>;
    Controls: React.FC<ControlsProps$1>;
};

export { HologramSticker, HologramSticker as default, useHologram };
export type { CardProps, ContentProps, ControlsProps, GlareProps, HologramContextType, ImageLayerProps, MinimapProps, PatternProps, PointerPosition, RefractionProps, RootProps, SceneProps, SpotlightProps, WatermarkProps };
