import * as _angular_core from '@angular/core';
import { Type, EnvironmentProviders } from '@angular/core';
import { ClassValue } from 'clsx';
import * as saxBoldIcons from '@ng-icons/iconsax/bold';
import * as saxOutlineIcons from '@ng-icons/iconsax/outline';
import * as lucideIcons from '@ng-icons/lucide';
import * as animatedIcons from 'ng-animated-icons';
import * as class_variance_authority_types from 'class-variance-authority/types';
import { VariantProps } from 'class-variance-authority';

type ZLucideIcon = Extract<keyof typeof lucideIcons, `lucide${string}`>;
type ZSaxIcon = Extract<keyof typeof saxBoldIcons | keyof typeof saxOutlineIcons, `sax${string}`>;
declare const Z_ICONS: {};
type ZIcon = ZLucideIcon | ZSaxIcon;

type ZIconAnimationTrigger = 'manual' | 'hover' | 'focus' | 'interaction' | 'always';
declare class ZIconComponent {
    readonly class: _angular_core.InputSignal<ClassValue>;
    readonly zType: _angular_core.InputSignal<ZIcon | undefined>;
    readonly zAnimatedType: _angular_core.InputSignal<("accessibility" | "activity" | "play" | "airplay" | "check" | "alarm-clock-check" | "clock" | "alarm-clock" | "alarm-clock-off" | "align-horizontal-space-around" | "align-vertical-space-around" | "anvil" | "archive" | "arrow-big-down-dash" | "arrow-big-down" | "arrow-big-left-dash" | "arrow-big-left" | "arrow-big-right-dash" | "arrow-big-right" | "arrow-big-up-dash" | "arrow-big-up" | "arrow-down-01" | "arrow-down-10" | "arrow-down-a-z" | "arrow-down" | "arrow-down-left" | "arrow-down-right" | "arrow-down-z-a" | "arrow-left" | "arrow-left-right" | "arrow-right" | "arrow-right-left" | "arrow-up-01" | "arrow-up-10" | "arrow-up-a-z" | "arrow-up" | "arrow-up-left" | "arrow-up-right" | "arrow-up-z-a" | "award" | "x" | "axe" | "axis-3d" | "badge-alert" | "badge-check" | "badge-question-mark" | "battery-charging" | "battery-full" | "battery" | "battery-low" | "battery-medium" | "battery-warning" | "bean-off" | "beer-off" | "bell" | "bell-off" | "bell-ring" | "between-horizontal-end" | "between-horizontal-start" | "between-vertical-end" | "between-vertical-start" | "binary" | "blend" | "blocks" | "bluetooth-off" | "bold" | "bolt" | "bone" | "book-a" | "book-audio" | "book-check" | "book-dashed" | "book-down" | "book-headphones" | "heart" | "book-heart" | "book" | "book-image" | "key" | "book-key" | "book-lock" | "book-marked" | "minus" | "book-minus" | "book-open-check" | "book-open-text" | "plus" | "book-plus" | "book-text" | "book-type" | "book-up-2" | "book-up" | "user" | "book-user" | "book-x" | "bookmark-check" | "bookmark" | "bookmark-minus" | "bookmark-plus" | "bookmark-x" | "bot" | "bot-off" | "boxes" | "cog" | "brain-cog" | "briefcase-business" | "briefcase-conveyor-belt" | "briefcase" | "briefcase-medical" | "brush-cleaning" | "brush" | "bug-off" | "calendar-check-2" | "calendar-check" | "calendar-cog" | "calendar-days" | "calendar-off" | "calendar-sync" | "camera-off" | "candy-off" | "captions-off" | "cast" | "cctv" | "chart-bar-decreasing" | "chart-bar" | "chart-bar-increasing" | "chart-column-decreasing" | "chart-column" | "chart-column-increasing" | "chart-gantt" | "chart-line" | "chart-no-axes-column-decreasing" | "chart-no-axes-column" | "chart-no-axes-column-increasing" | "chart-no-axes-combined" | "chart-no-axes-gantt" | "chart-pie" | "chart-scatter" | "chart-spline" | "check-check" | "cherry" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "chevrons-down" | "chevrons-down-up" | "chevrons-left" | "chevrons-left-right" | "chevrons-right" | "chevrons-right-left" | "chevrons-up-down" | "chevrons-up" | "cigarette-off" | "circle-alert" | "circle-arrow-down" | "circle-arrow-left" | "circle-arrow-out-down-left" | "circle-arrow-out-down-right" | "circle-arrow-out-up-left" | "circle-arrow-out-up-right" | "circle-arrow-right" | "circle-arrow-up" | "circle-check-big" | "circle-check" | "circle-chevron-down" | "circle-chevron-left" | "circle-chevron-right" | "circle-chevron-up" | "circle-off" | "circle-parking-off" | "circle-plus" | "circle-question-mark" | "clapperboard" | "clipboard-check" | "clipboard" | "clipboard-list" | "pen" | "clipboard-pen" | "pen-line" | "clipboard-pen-line" | "clipboard-x" | "clock-10" | "clock-11" | "clock-12" | "clock-1" | "clock-2" | "clock-3" | "clock-4" | "clock-5" | "clock-6" | "clock-7" | "clock-8" | "clock-9" | "cloud-cog" | "download" | "cloud-download" | "cloud-moon" | "cloud-off" | "upload" | "cloud-upload" | "compass" | "contrast" | "copy-check" | "copy" | "cpu" | "crop" | "diamond-plus" | "dice-1" | "dice-2" | "dice-3" | "dice-4" | "dice-5" | "dice-6" | "diff" | "dna-off" | "droplet-off" | "drum" | "ear-off" | "eclipse" | "egg-off" | "expand" | "eye-off" | "file-chart-column" | "file-chart-column-increasing" | "file-chart-line" | "file-check-corner" | "file-check" | "file-cog" | "file-down" | "file-exclamation-point" | "file-minus" | "file-pen" | "file-pen-line" | "file-plus" | "file-question-mark" | "file-sliders" | "file-stack" | "terminal" | "file-terminal" | "file-up" | "fish-off" | "flag-off" | "flashlight-off" | "flask-conical-off" | "folder-check" | "folder-cog" | "folder-down" | "kanban" | "folder-kanban" | "folder-pen" | "folder-plus" | "folder-sync" | "folder-up" | "folder-x" | "frame" | "funnel-x" | "gallery-horizontal-end" | "gallery-horizontal" | "gallery-thumbnails" | "gallery-vertical-end" | "gallery-vertical" | "gauge" | "gavel" | "grid-2x2-check" | "grip-horizontal" | "grip" | "grip-vertical" | "hammer" | "hand-coins" | "hand-heart" | "hard-drive-download" | "hard-drive-upload" | "phone-off" | "headphone-off" | "heart-off" | "history" | "hop-off" | "house" | "wifi" | "house-wifi" | "image-down" | "image-off" | "image-up" | "images" | "infinity" | "key-round" | "key-square" | "keyboard" | "keyboard-off" | "landmark" | "layers" | "layout-dashboard" | "layout-grid" | "layout-panel-left" | "layout-panel-top" | "layout-template" | "lightbulb" | "lightbulb-off" | "link2-off" | "list-check" | "list-checks" | "list-restart" | "list-todo" | "loader-pinwheel" | "locate-off" | "log-out" | "mail-check" | "map-pin-check" | "map-pin-check-inside" | "pin-off" | "map-pin-off" | "maximize-2" | "maximize" | "megaphone-off" | "message-circle" | "message-circle-more" | "message-circle-off" | "message-circle-question-mark" | "message-circle-warning" | "message-square" | "message-square-more" | "message-square-off" | "mic-off" | "milk-off" | "minimize-2" | "minimize" | "monitor-check" | "monitor-cog" | "monitor-down" | "monitor-off" | "monitor-up" | "mouse-off" | "mouse-pointer-2" | "mouse-pointer" | "move-diagonal-2" | "move-diagonal" | "move-down" | "move-down-left" | "move-down-right" | "move-horizontal" | "move-left" | "move-right" | "move-up" | "move-up-left" | "move-up-right" | "move-vertical" | "navigation2-off" | "navigation-off" | "nfc" | "notebook-pen" | "nut-off" | "octagon-alert" | "orbit" | "package-check" | "paintbrush" | "panel-bottom-close" | "panel-bottom-open" | "panel-left-close" | "panel-left-open" | "panel-right-close" | "panel-right-open" | "panel-top-close" | "panel-top-open" | "paperclip" | "pen-off" | "pencil" | "pencil-line" | "pencil-off" | "pickaxe" | "plane" | "pointer-off" | "power-off" | "printer-check" | "rabbit" | "radar" | "radio" | "radio-tower" | "rainbow" | "redo-dot" | "redo" | "refresh-ccw-dot" | "refresh-ccw" | "refresh-cw" | "refresh-cw-off" | "rocket" | "rocking-chair" | "rotate-ccw" | "rotate-ccw-key" | "rotate-cw" | "route" | "route-off" | "rss" | "save-off" | "scan-text" | "scissors" | "search-check" | "search" | "send-horizontal" | "send" | "server-cog" | "server-off" | "settings" | "shield-alert" | "shield-check" | "shield-off" | "shield-plus" | "shield-question-mark" | "ship" | "ship-wheel" | "shopping-cart" | "shovel" | "shower-head" | "shrink" | "signal-high" | "signal" | "signal-low" | "signal-medium" | "signal-zero" | "signature" | "sliders-horizontal" | "sliders-vertical" | "smartphone-nfc" | "snowflake" | "sparkle" | "sparkles" | "speech" | "spell-check" | "square-arrow-down" | "square-arrow-down-left" | "square-arrow-down-right" | "square-arrow-left" | "square-arrow-out-down-left" | "square-arrow-out-down-right" | "square-arrow-out-up-left" | "square-arrow-out-up-right" | "square-arrow-right" | "square-arrow-up" | "square-arrow-up-left" | "square-arrow-up-right" | "square-chart-gantt" | "square-check-big" | "square-check" | "square-chevron-down" | "square-chevron-left" | "square-chevron-right" | "square-chevron-up" | "square-dashed-kanban" | "square-kanban" | "square-parking-off" | "square-pen" | "square-plus" | "square-scissors" | "square-stack" | "square-terminal" | "star" | "star-off" | "sun" | "sword" | "tag" | "telescope" | "text-align-center" | "text-cursor" | "text-cursor-input" | "text-search" | "thermometer" | "thumbs-down" | "thumbs-up" | "ticket-check" | "timer" | "timer-off" | "toggle-left" | "toggle-right" | "tornado" | "touchpad-off" | "trash-2" | "trash" | "triangle-alert" | "umbrella-off" | "undo-dot" | "undo" | "unfold-horizontal" | "unfold-vertical" | "unplug" | "user-check" | "user-cog" | "user-pen" | "user-round-check" | "user-round-cog" | "user-round" | "user-round-pen" | "vibrate" | "vibrate-off" | "video-off" | "volume-off" | "vote" | "waves" | "webhook-off" | "wheat-off" | "wifi-high" | "wifi-low" | "wifi-off" | "wifi-pen" | "wifi-zero" | "wine-off" | "zap-off") | undefined>;
    readonly zAnimate: _angular_core.InputSignal<boolean>;
    readonly zAnimationTrigger: _angular_core.InputSignal<ZIconAnimationTrigger>;
    readonly zSize: _angular_core.InputSignal<string | number | null | undefined>;
    readonly zStrokeWidth: _angular_core.InputSignal<number>;
    readonly zSvg: _angular_core.InputSignal<string>;
    protected readonly resolvedSvg: _angular_core.WritableSignal<string>;
    protected readonly isHoverActive: _angular_core.WritableSignal<boolean>;
    protected readonly isFocusActive: _angular_core.WritableSignal<boolean>;
    protected readonly isTouchActive: _angular_core.WritableSignal<boolean>;
    protected readonly normalizedSize: _angular_core.Signal<string>;
    private readonly _svgFetchError;
    protected readonly zClasses: _angular_core.Signal<string>;
    protected readonly animatedIcon: _angular_core.Signal<Type<unknown> | null>;
    protected readonly animatedIconInputs: _angular_core.Signal<Record<string, unknown>>;
    protected readonly shouldAnimate: _angular_core.Signal<boolean>;
    constructor();
    private _isRawSvg;
    protected setHoverActive(isActive: boolean): void;
    protected setFocusActive(isActive: boolean): void;
    protected setTouchActive(isActive: boolean): void;
    private _isSvgPath;
    private _normalizeCustomSvg;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZIconComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZIconComponent, "z-icon, [z-icon]", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zType": { "alias": "zType"; "required": false; "isSignal": true; }; "zAnimatedType": { "alias": "zAnimatedType"; "required": false; "isSignal": true; }; "zAnimate": { "alias": "zAnimate"; "required": false; "isSignal": true; }; "zAnimationTrigger": { "alias": "zAnimationTrigger"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zStrokeWidth": { "alias": "zStrokeWidth"; "required": false; "isSignal": true; }; "zSvg": { "alias": "zSvg"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

type ZAnimatedIconExport = Extract<keyof typeof animatedIcons, `${string}Icon`>;
type ZBrokenAnimatedIconExport = 'AudioLinesIcon';
type ZSafeAnimatedIconExport = Exclude<ZAnimatedIconExport, ZBrokenAnimatedIconExport>;
type ZStripIconSuffix<T extends string> = T extends `${infer Name}Icon` ? Name : T;
type ZKebabCase<T extends string, Previous extends string = ''> = T extends `${infer Head}${infer Tail}` ? Tail extends Uncapitalize<Tail> ? Head extends `${number}` ? Previous extends '' | '-' | `${number}` ? `${Head}${ZKebabCase<Tail, Head>}` : `-${Head}${ZKebabCase<Tail, Head>}` : `${Lowercase<Head>}${ZKebabCase<Tail, Head>}` : `${Lowercase<Head>}-${ZKebabCase<Tail, '-'>}` : T;
type ZAnimatedIconName = ZKebabCase<ZStripIconSuffix<ZSafeAnimatedIconExport>>;
type ZAnimatedIcon = ZAnimatedIconName;
declare const Z_ANIMATED_ICONS: Record<ZAnimatedIcon, Type<unknown>>;

declare const zIconVariants: (props?: ({
    zSize?: string | number | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
type ZIconVariants = VariantProps<typeof zIconVariants>;

declare function provideZIconLoader(): EnvironmentProviders;

export { ZIconComponent, Z_ANIMATED_ICONS, Z_ICONS, provideZIconLoader, zIconVariants };
export type { ZAnimatedIcon, ZIcon, ZIconAnimationTrigger, ZIconVariants };
