import * as _qualcomm_ui_angular_core_machine from '@qualcomm-ui/angular-core/machine'; import * as _qualcomm_ui_angular_icon from '@qualcomm-ui/angular/icon'; import * as _angular_core from '@angular/core'; import { OnInit, ElementRef, InjectionToken, Signal, Renderer2 } from '@angular/core'; import { LucideIconOrString, LucideIconProviderValue, LucideIcon } from '@qualcomm-ui/angular-core/lucide'; import { SignalifyInput, MaybeSignal } from '@qualcomm-ui/angular-core/signals'; import { QdsIconApiProps, QdsIconSize, QdsIconBindings } from '@qualcomm-ui/qds-core/icon'; import { Dict } from '@qualcomm-ui/utils/machine'; /** * A utility component that renders a Lucide icon or template content. This is used * by components that need a leading icon. If this directive is attached to an svg * element, the qds icon bindings will be applied to the svg element. Otherwise, an * svg element will be created as a child of the element and the icon bindings will * be applied to it instead. */ declare class EndIconDirective implements OnInit { /** * Lucide Icon or string. */ readonly icon: _angular_core.InputSignal; protected readonly context: _qualcomm_ui_angular_icon.IconTokenContext | null; protected readonly elementRef: ElementRef; protected readonly iconData: _qualcomm_ui_angular_icon.UseLucideIconReturn; protected readonly trackBindings: ((opts?: _qualcomm_ui_angular_core_machine.TrackBindingsConfig) => void) & { extendWith: (computedProps: () => _qualcomm_ui_angular_core_machine.Dict) => void; setDisabled: (disabled: boolean) => void; }; ngOnInit(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class IconDirective implements SignalifyInput, OnInit { /** * Lucide Icon or string. */ readonly icon: _angular_core.InputSignal; /** * @default 'md' */ readonly size: _angular_core.InputSignal; /** * HTML {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Attribute/viewBox viewbox} attribute * * @default '0 0 24 24' */ readonly viewBox: _angular_core.InputSignal; /** * HTML {@link https://www.w3schools.com/tags/att_html_xmlns.asp xmlns} attribute * * @default 'http://www.w3.org/2000/svg' */ readonly xmlns: _angular_core.InputSignal; /** * Force the height of the icon. This typically isn't required. You should prefer * the {@link size} property for customization instead. */ readonly height: _angular_core.InputSignal; /** * Force the width of the icon. This typically isn't required. You should prefer * the {@link size} property for customization instead. */ readonly width: _angular_core.InputSignal; readonly elementRef: ElementRef; protected readonly iconData: _qualcomm_ui_angular_icon.UseLucideIconReturn; protected readonly trackBindings: ((opts?: _qualcomm_ui_angular_core_machine.TrackBindingsConfig) => void) & { extendWith: (computedProps: () => _qualcomm_ui_angular_core_machine.Dict) => void; setDisabled: (disabled: boolean) => void; }; ngOnInit(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } interface IconTokenContext { getBindings: Signal; } declare const START_ICON_CONTEXT_TOKEN: InjectionToken; declare const END_ICON_CONTEXT_TOKEN: InjectionToken; /** * A utility component that renders a Lucide icon or template content. This is used * by components that need a leading icon. If this directive is attached to an svg * element, the qds icon bindings will be applied to the svg element. Otherwise, an * svg element will be created as a child of the element and the icon bindings will * be applied to it instead. */ declare class StartIconDirective implements OnInit { /** * Lucide Icon or string. */ readonly icon: _angular_core.InputSignal; protected readonly context: _qualcomm_ui_angular_icon.IconTokenContext | null; protected readonly elementRef: ElementRef; protected readonly iconData: _qualcomm_ui_angular_icon.UseLucideIconReturn; protected readonly trackBindings: ((opts?: _qualcomm_ui_angular_core_machine.TrackBindingsConfig) => void) & { extendWith: (computedProps: () => _qualcomm_ui_angular_core_machine.Dict) => void; setDisabled: (disabled: boolean) => void; }; ngOnInit(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } interface UseLucideIconOptions { elementRef?: ElementRef; icon?: MaybeSignal | undefined; iconProps?: { height?: MaybeSignal; size?: MaybeSignal; viewBox?: MaybeSignal; width?: MaybeSignal; xmlns?: MaybeSignal; }; icons?: LucideIconProviderValue | null; /** * If true, the QDS data-size attribute will not be applied to the icon. This is * useful if you want to use the icon in a context where the size binding is * already applied. */ renderer2?: Renderer2; /** * Throws an error if the provided icon is undefined or not found (when passed as * a string it is resolved against the nearest provider returned from the * provideIcons utility function). */ throwOnUnresolvedStringIcon?: ThrowOnUnresolvedStringIcon; } interface UseLucideIconReturn { getIconBindings: Signal; icon: ThrowOnUnresolvedStringIcon extends true ? Signal : Signal; icons: LucideIconProviderValue | null; xmlns: string; } declare function useLucideIcon(options?: UseLucideIconOptions): UseLucideIconReturn; export { END_ICON_CONTEXT_TOKEN, EndIconDirective, IconDirective, START_ICON_CONTEXT_TOKEN, StartIconDirective, useLucideIcon }; export type { IconTokenContext, UseLucideIconOptions, UseLucideIconReturn }; //# sourceMappingURL=qualcomm-ui-angular-icon.d.ts.map