import { SizeConfig, ThemeColors, BorderBeamColorVariant, BorderBeamSize } from './types'; /** * Size presets for border radius and dimensions */ export declare const sizePresets: Record; /** * Per-size theme presets matching the tuned v5 control panel defaults */ export declare const sizeThemePresets: Record>; /** * @deprecated Use `sizeThemePresets` for per-size theme values. * Retained for backward compatibility — maps to `md` size presets. */ export declare const themeColors: Record<'dark' | 'light', ThemeColors>; /** * Color palettes for each color variant */ export declare const colorPalettes: { colorful: { border: { color: string; pos: string; size: string; }[]; spike: { primary: string; secondary: string; }; spikeLt: { primary: string; secondary: string; }; }; mono: { border: { color: string; pos: string; size: string; }[]; spike: { primary: string; secondary: string; }; spikeLt: { primary: string; secondary: string; }; }; ocean: { border: { color: string; pos: string; size: string; }[]; spike: { primary: string; secondary: string; }; spikeLt: { primary: string; secondary: string; }; }; sunset: { border: { color: string; pos: string; size: string; }[]; spike: { primary: string; secondary: string; }; spikeLt: { primary: string; secondary: string; }; }; }; /** * Small size color palettes (compact gradients for button-sized elements) */ export declare const smallColorPalettes: { colorful: { border: { color: string; pos: string; size: string; }[]; inner: { color: string; pos: string; size: string; }[]; }; mono: { border: { color: string; pos: string; size: string; }[]; inner: { color: string; pos: string; size: string; }[]; }; ocean: { border: { color: string; pos: string; size: string; }[]; inner: { color: string; pos: string; size: string; }[]; }; sunset: { border: { color: string; pos: string; size: string; }[]; inner: { color: string; pos: string; size: string; }[]; }; }; export declare const lineColorPalettes: { colorful: { dark: { color: string; sizeW: number; sizeH: number; offsetX: number; offsetY: number; }[]; light: { color: string; sizeW: number; sizeH: number; offsetX: number; offsetY: number; }[]; }; mono: { dark: { color: string; sizeW: number; sizeH: number; offsetX: number; offsetY: number; }[]; light: { color: string; sizeW: number; sizeH: number; offsetX: number; offsetY: number; }[]; }; ocean: { dark: { color: string; sizeW: number; sizeH: number; offsetX: number; offsetY: number; }[]; light: { color: string; sizeW: number; sizeH: number; offsetX: number; offsetY: number; }[]; }; sunset: { dark: { color: string; sizeW: number; sizeH: number; offsetX: number; offsetY: number; }[]; light: { color: string; sizeW: number; sizeH: number; offsetX: number; offsetY: number; }[]; }; }; export declare const lineInnerGradientData: { colorful: { color: string; sizeW: number; sizeH: number; offsetX: number; offsetY: number; }[]; mono: { color: string; sizeW: number; sizeH: number; offsetX: number; offsetY: number; }[]; ocean: { color: string; sizeW: number; sizeH: number; offsetX: number; offsetY: number; }[]; sunset: { color: string; sizeW: number; sizeH: number; offsetX: number; offsetY: number; }[]; }; export declare const lineBloomColors: { colorful: { dark: { spikes: { color1: string; color2: string; }[]; }; light: { spikes: { color1: string; color2: string; }[]; }; }; mono: { dark: { spikes: { color1: string; color2: string; }[]; }; light: { spikes: { color1: string; color2: string; }[]; }; }; ocean: { dark: { spikes: { color1: string; color2: string; }[]; }; light: { spikes: { color1: string; color2: string; }[]; }; }; sunset: { dark: { spikes: { color1: string; color2: string; }[]; }; light: { spikes: { color1: string; color2: string; }[]; }; }; }; type PulseRegion = 1 | 2 | 3; type PulseQuad = 'tl' | 'tr' | 'bl' | 'br'; export declare const PULSE_RING_MAP: { region: PulseRegion; quad: PulseQuad; }[]; export declare const PULSE_INNER_SIZES: [number, number][]; export interface PulseGradientDef { ci: number; region: PulseRegion; quad: PulseQuad; w: number; h: number; x?: string; y?: string; } export declare const PULSE_INNER_BLOOM: PulseGradientDef[]; export declare const PULSE_OUTER_CORE: PulseGradientDef[]; export declare const PULSE_OUTER_BLOOM: PulseGradientDef[]; /** A single sinusoidal oscillator that ping-pongs a CSS var between `a` and `b`. */ export interface PulseOscillatorDef { prop: string; a: number; b: number; /** Full period in seconds. */ period: number; /** Phase offset in seconds (desyncs otherwise-identical oscillators). */ delay: number; /** '' for unitless vars, 'px' for drift vars. */ unit: '' | 'px'; } export interface PulseDriverConfig { oscillators: PulseOscillatorDef[]; /** * Hue motion driven into `--beam-hue-`; null when colors are static. * `continuous` rotates a full 360° loop over `period` (so every palette color * cycles through every edge for a lively, ever-changing wash); otherwise it * ping-pongs between -range and +range. */ hue: { prop: string; range: number; period: number; continuous?: boolean; } | null; } /** Theme/size/duration-tuned breathing parameters (shared by CSS + JS driver). */ export declare function pulseParams(size: BorderBeamSize, theme: 'dark' | 'light', duration: number): { sp: number; dr: number; op: number; gh: number; bs: number; ss: number; ghs: number; huePeriod: number; }; /** Build the oscillator table for an instance (matches the former keyframes). */ export declare function pulseOscillatorDefs(id: string, p: ReturnType): PulseOscillatorDef[]; /** * Returns the runtime config the JS driver needs to animate a pulse instance, * or null for non-pulse sizes. Kept in sync with the CSS by sharing pulseParams. */ export declare function getPulseDriverConfig(size: BorderBeamSize, theme: 'dark' | 'light', duration: number, staticColors: boolean, id: string): PulseDriverConfig | null; interface GenerateStylesOptions { id: string; borderRadius: number; borderWidth: number; duration: number; strokeOpacity: number; innerOpacity: number; bloomOpacity: number; innerShadow: string; size: BorderBeamSize; colorVariant: BorderBeamColorVariant; staticColors: boolean; brightness: number; saturation: number; hueRange: number; theme: 'dark' | 'light'; /** Opacity of the 1px hairline outline (pulse-outside only). Falls back to 0. */ hairlineOpacity?: number; } /** * Generate complete CSS for a BorderBeam instance */ export declare function generateBeamCSS(options: GenerateStylesOptions): string; export {};