type SVGProps = Record; /** * A Lucide icon node (an svgson-like internal format) */ type LucideIconNode = [attrName: string, attributes: SVGProps] | [attrName: string, attributes: SVGProps, children: LucideIconNode[]]; /** * A Lucide icon object that fully describes an icon to be displayed. */ type LucideIconData = { name: string; node: LucideIconNode[]; aliases?: string[]; } & ({ size: number; } | { width: number; height: number; }); /** * Build parameters for creating a Lucide icon instance for display. */ type LucideBuildParams = { /** * The color of the icon. */ color?: string; /** * The stroke width. */ strokeWidth?: number; /** * Adds [`vector-effect="non-scaling-stroke"`](https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Attribute/vector-effect) to child elements. */ absoluteStrokeWidth?: boolean; /** * Extra CSS class names to pass to the SVG element. */ className?: string; /** * Any extra attributes to pass to the SVG element. */ attributes?: SVGProps; } & ({ size?: number; } | { width?: number; height?: number; }); /** * Creates a Lucide icon node (an svgson-like format) from a Lucide icon object. * * @param icon The icon to build. * @param params Additional build parameters. */ declare function buildLucideIconNode(icon: LucideIconData, params?: LucideBuildParams): LucideIconNode; /** * Creates a base64 encoded data URI from a Lucide icon object. * * @param icon The icon to build. * @param params Additional build parameters. */ declare function buildLucideDataUri(icon: LucideIconData, params?: LucideBuildParams): string; /** * Creates an SvgElement from a Lucide icon object. * * @param document The document to create the Element in. * @param icon The icon to build. * @param params Additional build parameters. */ declare function buildLucideIconElement(document: Document, icon: LucideIconData, params?: LucideBuildParams): Element; /** * Creates an SVG string from a Lucide icon object. * * @param icon The icon to build. * @param params Additional build parameters. */ declare function buildLucideSvg(icon: LucideIconData, params?: LucideBuildParams): string; export { buildLucideDataUri, buildLucideIconElement, buildLucideIconNode, buildLucideSvg };