import * as _flowgram_ai_core from '@flowgram.ai/core'; import { Layer, PlaygroundConfigEntity } from '@flowgram.ai/core'; /** * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates * SPDX-License-Identifier: MIT */ interface BackgroundScaleUnit { realSize: number; renderSize: number; zoom: number; } declare const BackgroundConfig: unique symbol; interface BackgroundLayerOptions { /** 网格间距,默认 20px */ gridSize?: number; /** 点的大小,默认 1px */ dotSize?: number; /** 点的颜色,默认 "#eceeef" */ dotColor?: string; /** 点的透明度,默认 0.5 */ dotOpacity?: number; /** 背景颜色,默认透明 */ backgroundColor?: string; /** 点的填充颜色,默认与stroke颜色相同 */ dotFillColor?: string; /** Logo 配置 */ logo?: { /** Logo 文本内容 */ text?: string; /** Logo 图片 URL */ imageUrl?: string; /** Logo 位置,默认 'center' */ position?: 'center' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; /** Logo 大小,默认 'medium' */ size?: 'small' | 'medium' | 'large' | number; /** Logo 透明度,默认 0.1 */ opacity?: number; /** Logo 颜色(仅文本),默认 "#cccccc" */ color?: string; /** Logo 字体大小(仅文本),默认根据 size 计算 */ fontSize?: number; /** Logo 字体家族(仅文本),默认 'Arial, sans-serif' */ fontFamily?: string; /** Logo 字体粗细(仅文本),默认 'normal' */ fontWeight?: 'normal' | 'bold' | 'lighter' | number; /** 自定义偏移 */ offset?: { x: number; y: number; }; /** 新拟态(Neumorphism)效果配置 */ neumorphism?: { /** 是否启用新拟态效果,默认 false */ enabled?: boolean; /** 主要文字颜色,应该与背景色接近,默认自动计算 */ textColor?: string; /** 亮色阴影颜色,默认自动计算(背景色的亮色版本) */ lightShadowColor?: string; /** 暗色阴影颜色,默认自动计算(背景色的暗色版本) */ darkShadowColor?: string; /** 阴影偏移距离,默认 6 */ shadowOffset?: number; /** 阴影模糊半径,默认 12 */ shadowBlur?: number; /** 效果强度(0-1),影响阴影的透明度,默认 0.3 */ intensity?: number; /** 凸起效果(true)还是凹陷效果(false),默认 true */ raised?: boolean; }; }; } /** * dot 网格背景 */ declare class BackgroundLayer extends Layer { static type: string; protected playgroundConfigEntity: PlaygroundConfigEntity; private _patternId; node: HTMLDivElement; grid: HTMLElement; /** * 获取网格大小配置 */ private get gridSize(); /** * 获取点大小配置 */ private get dotSize(); /** * 获取点颜色配置 */ private get dotColor(); /** * 获取点透明度配置 */ private get dotOpacity(); /** * 获取背景颜色配置 */ private get backgroundColor(); /** * 获取点填充颜色配置 */ private get dotFillColor(); /** * 获取Logo配置 */ private get logoConfig(); /** * 当前缩放比 */ get zoom(): number; onReady(): void; /** * 最小单元格大小 */ getScaleUnit(): BackgroundScaleUnit; /** * 绘制 */ autorun(): void; /** * 计算Logo位置 */ private calculateLogoPosition; /** * 获取Logo大小 */ private getLogoSize; /** * 颜色工具函数:将十六进制颜色转换为RGB */ private hexToRgb; /** * 颜色工具函数:调整颜色亮度 */ private adjustBrightness; /** * 生成新拟态阴影滤镜 */ private generateNeumorphismFilter; /** * 绘制Logo SVG内容 */ private generateLogoSVG; /** * 绘制网格 */ protected drawGrid(unit: BackgroundScaleUnit, viewBoxWidth: number, viewBoxHeight: number): void; protected setSVGStyle(svgElement: HTMLElement | undefined, style: { width: number; height: number; left: number; top: number; }): void; /** * 获取相对滚动距离 * @param realScroll * @param mod */ protected getScrollDelta(realScroll: number, mod: number): number; } /** * 点位背景插件 */ declare const createBackgroundPlugin: _flowgram_ai_core.PluginCreator; export { BackgroundConfig, BackgroundLayer, type BackgroundLayerOptions, createBackgroundPlugin };