import type { InjectionKey, MaybeRefOrGetter, PropType } from 'vue'; import type { JSXComponent } from '../util/index.js'; export type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent; export declare const IconValue: PropType; export interface IconAliases { [name: string]: IconValue; collapse: IconValue; complete: IconValue; cancel: IconValue; close: IconValue; delete: IconValue; clear: IconValue; success: IconValue; info: IconValue; warning: IconValue; error: IconValue; prev: IconValue; next: IconValue; checkboxOn: IconValue; checkboxOff: IconValue; checkboxIndeterminate: IconValue; delimiter: IconValue; sortAsc: IconValue; sortDesc: IconValue; expand: IconValue; menu: IconValue; subgroup: IconValue; dropdown: IconValue; radioOn: IconValue; radioOff: IconValue; edit: IconValue; ratingEmpty: IconValue; ratingFull: IconValue; ratingHalf: IconValue; loading: IconValue; first: IconValue; last: IconValue; unfold: IconValue; file: IconValue; plus: IconValue; minus: IconValue; calendar: IconValue; treeviewCollapse: IconValue; treeviewExpand: IconValue; eyeDropper: IconValue; upload: IconValue; color: IconValue; command: IconValue; ctrl: IconValue; space: IconValue; shift: IconValue; alt: IconValue; enter: IconValue; arrowup: IconValue; arrowdown: IconValue; arrowleft: IconValue; arrowright: IconValue; backspace: IconValue; } export interface IconProps { tag: string | JSXComponent; icon?: IconValue; disabled?: boolean; } type IconComponent = JSXComponent; export interface IconSet { component: IconComponent; } export type InternalIconOptions = { defaultSet: string; aliases: Partial; sets: Record; }; export type IconOptions = Partial; type IconInstance = { component: IconComponent; icon?: IconValue; }; export declare const IconSymbol: InjectionKey; export declare const makeIconProps: (defaults?: Defaults | undefined) => { icon: unknown extends Defaults["icon"] ? { type: PropType; } : Omit<{ type: PropType; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["icon"] ? IconValue : Defaults["icon"] | NonNullable; }; tag: unknown extends Defaults["tag"] ? { type: PropType; required: true; } : Omit<{ type: PropType; required: true; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["tag"] ? string | JSXComponent : Defaults["tag"] | NonNullable; }; }; export declare const VComponentIcon: { new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{ tag: string | JSXComponent; } & { icon?: IconValue | undefined; } & { $children?: { default?: (() => import("vue").VNodeChild) | undefined; } | { $stable?: boolean; } | (() => import("vue").VNodeChild) | import("vue").VNodeChild; 'v-slots'?: { default?: false | (() => import("vue").VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined; }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {}, true, {}, import("vue").SlotsType import("vue").VNode[]; }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, { tag: string | JSXComponent; } & { icon?: IconValue | undefined; } & { $children?: { default?: (() => import("vue").VNodeChild) | undefined; } | { $stable?: boolean; } | (() => import("vue").VNodeChild) | import("vue").VNodeChild; 'v-slots'?: { default?: false | (() => import("vue").VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined; }, () => JSX.Element, {}, {}, {}, {}>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & import("vue").ComponentOptionsBase<{ tag: string | JSXComponent; } & { icon?: IconValue | undefined; } & { $children?: { default?: (() => import("vue").VNodeChild) | undefined; } | { $stable?: boolean; } | (() => import("vue").VNodeChild) | import("vue").VNodeChild; 'v-slots'?: { default?: false | (() => import("vue").VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined; }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record, string, {}, {}, string, import("vue").SlotsType import("vue").VNode[]; }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../util/index.js").FilterPropsOptions<{ icon: { type: PropType; }; tag: { type: PropType; required: true; }; }, import("vue").ExtractPropTypes<{ icon: { type: PropType; }; tag: { type: PropType; required: true; }; }>>; export type VComponentIcon = InstanceType; export declare const VSvgIcon: { new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins; }; tag: { type: PropType; required: true; }; }>>, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, Readonly; }; tag: { type: PropType; required: true; }; }>>, () => JSX.Element, {}, {}, {}, {}>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & import("vue").ComponentOptionsBase; }; tag: { type: PropType; required: true; }; }>>, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../util/index.js").FilterPropsOptions<{ icon: { type: PropType; }; tag: { type: PropType; required: true; }; }, import("vue").ExtractPropTypes<{ icon: { type: PropType; }; tag: { type: PropType; required: true; }; }>>; export type VSvgIcon = InstanceType; export declare const VLigatureIcon: { new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins; }; tag: { type: PropType; required: true; }; }>>, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, Readonly; }; tag: { type: PropType; required: true; }; }>>, () => JSX.Element, {}, {}, {}, {}>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & import("vue").ComponentOptionsBase; }; tag: { type: PropType; required: true; }; }>>, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../util/index.js").FilterPropsOptions<{ icon: { type: PropType; }; tag: { type: PropType; required: true; }; }, import("vue").ExtractPropTypes<{ icon: { type: PropType; }; tag: { type: PropType; required: true; }; }>>; export type VLigatureIcon = InstanceType; export declare const VClassIcon: { new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins; }; tag: { type: PropType; required: true; }; }>>, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, Readonly; }; tag: { type: PropType; required: true; }; }>>, () => JSX.Element, {}, {}, {}, {}>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & import("vue").ComponentOptionsBase; }; tag: { type: PropType; required: true; }; }>>, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../util/index.js").FilterPropsOptions<{ icon: { type: PropType; }; tag: { type: PropType; required: true; }; }, import("vue").ExtractPropTypes<{ icon: { type: PropType; }; tag: { type: PropType; required: true; }; }>>; export type VClassIcon = InstanceType; export declare const useIcon: (props: MaybeRefOrGetter) => { iconData: import("vue").ComputedRef; };