import type { PropType } from 'vue'; import type { IconValue } from "../../composables/icons.js"; import type { Variant } from "../../composables/variant.js"; export type VIconBtnSlots = { default: never; loader: never; }; export type VIconBtnSizes = 'x-small' | 'small' | 'default' | 'large' | 'x-large'; export declare const makeVIconBtnProps: (defaults?: Defaults | undefined) => { color: unknown extends Defaults["color"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["color"] ? string : string | Defaults["color"]; }; variant: unknown extends Defaults["variant"] ? Omit<{ type: PropType; default: string; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; default: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; } : Omit; default: string; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; default: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["variant"] ? "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" : NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"> | Defaults["variant"]; }; theme: unknown extends Defaults["theme"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"]; }; tag: unknown extends Defaults["tag"] ? Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: NonNullable; } : Omit; default: string; }, "type" | "default"> & { type: PropType; default: NonNullable; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : NonNullable | Defaults["tag"]; }; rounded: unknown extends Defaults["rounded"] ? { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; } : Omit<{ type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["rounded"] ? string | number | boolean : NonNullable | Defaults["rounded"]; }; tile: unknown extends Defaults["tile"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]; }; iconSize: unknown extends Defaults["iconSize"] ? PropType : { type: PropType; default: unknown extends Defaults["iconSize"] ? string | number : NonNullable | Defaults["iconSize"]; }; iconSizes: unknown extends Defaults["iconSizes"] ? { type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; } : Omit<{ type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["iconSizes"] ? [VIconBtnSizes, number][] : [VIconBtnSizes, number][] | Defaults["iconSizes"]; }; elevation: unknown extends Defaults["elevation"] ? { type: (StringConstructor | NumberConstructor)[]; validator(v: any): boolean; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; validator(v: any): boolean; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["elevation"] ? string | number : NonNullable | Defaults["elevation"]; }; class: unknown extends Defaults["class"] ? PropType : { type: PropType; default: unknown extends Defaults["class"] ? any : any; }; style: unknown extends Defaults["style"] ? { type: PropType; default: null; } : Omit<{ type: PropType; default: null; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["style"] ? import("vue").StyleValue : NonNullable | Defaults["style"]; }; border: unknown extends Defaults["border"] ? (StringConstructor | BooleanConstructor | NumberConstructor)[] : { type: PropType; default: unknown extends Defaults["border"] ? string | number | boolean : NonNullable | Defaults["border"]; }; active: unknown extends Defaults["active"] ? { type: BooleanConstructor; default: undefined; } : Omit<{ type: BooleanConstructor; default: undefined; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["active"] ? boolean : boolean | Defaults["active"]; }; activeColor: unknown extends Defaults["activeColor"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["activeColor"] ? string : string | Defaults["activeColor"]; }; activeIcon: unknown extends Defaults["activeIcon"] ? PropType : { type: PropType; default: unknown extends Defaults["activeIcon"] ? IconValue : NonNullable | Defaults["activeIcon"]; }; activeVariant: unknown extends Defaults["activeVariant"] ? PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"> : { type: PropType; default: unknown extends Defaults["activeVariant"] ? "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" : NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"> | Defaults["activeVariant"]; }; baseVariant: unknown extends Defaults["baseVariant"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["baseVariant"] ? "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" : NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"> | Defaults["baseVariant"]; }; disabled: unknown extends Defaults["disabled"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]; }; height: unknown extends Defaults["height"] ? (StringConstructor | NumberConstructor)[] : { type: PropType; default: unknown extends Defaults["height"] ? string | number : NonNullable | Defaults["height"]; }; width: unknown extends Defaults["width"] ? (StringConstructor | NumberConstructor)[] : { type: PropType; default: unknown extends Defaults["width"] ? string | number : NonNullable | Defaults["width"]; }; hideOverlay: unknown extends Defaults["hideOverlay"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["hideOverlay"] ? boolean : boolean | Defaults["hideOverlay"]; }; icon: unknown extends Defaults["icon"] ? PropType : { type: PropType; default: unknown extends Defaults["icon"] ? IconValue : NonNullable | Defaults["icon"]; }; iconColor: unknown extends Defaults["iconColor"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["iconColor"] ? string : string | Defaults["iconColor"]; }; loading: unknown extends Defaults["loading"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["loading"] ? boolean : boolean | Defaults["loading"]; }; opacity: unknown extends Defaults["opacity"] ? (StringConstructor | NumberConstructor)[] : { type: PropType; default: unknown extends Defaults["opacity"] ? string | number : NonNullable | Defaults["opacity"]; }; readonly: unknown extends Defaults["readonly"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["readonly"] ? boolean : boolean | Defaults["readonly"]; }; rotate: unknown extends Defaults["rotate"] ? (StringConstructor | NumberConstructor)[] : { type: PropType; default: unknown extends Defaults["rotate"] ? string | number : NonNullable | Defaults["rotate"]; }; size: unknown extends Defaults["size"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["size"] ? string | number : NonNullable | Defaults["size"]; }; sizes: unknown extends Defaults["sizes"] ? { type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; } : Omit<{ type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["sizes"] ? [VIconBtnSizes, number][] : [VIconBtnSizes, number][] | Defaults["sizes"]; }; text: unknown extends Defaults["text"] ? { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; } : Omit<{ type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["text"] ? string | number | boolean : NonNullable | Defaults["text"]; }; }; export declare const VIconBtn: { new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{ variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"; loading: boolean; style: import("vue").StyleValue; disabled: boolean; size: string | number; readonly: boolean; tag: string | import("../../util/index.js").JSXComponent; sizes: [VIconBtnSizes, number][]; tile: boolean; baseVariant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"; hideOverlay: boolean; iconSizes: [VIconBtnSizes, number][]; } & { height?: string | number | undefined; width?: string | number | undefined; active?: boolean | undefined; border?: string | number | boolean | undefined; color?: string | undefined; opacity?: string | number | undefined; rotate?: string | number | undefined; text?: string | number | boolean | undefined; class?: any; theme?: string | undefined; icon?: IconValue | undefined; elevation?: string | number | undefined; rounded?: string | number | boolean | undefined; activeColor?: string | undefined; iconColor?: string | undefined; iconSize?: string | number | undefined; activeIcon?: IconValue | undefined; activeVariant?: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" | undefined; } & { $children?: import("vue").VNodeChild | { $stable?: boolean; } | (() => import("vue").VNodeChild) | { default?: (() => import("vue").VNodeChild) | undefined; loader?: (() => import("vue").VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => import("vue").VNodeChild) | undefined; loader?: false | (() => import("vue").VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined; "v-slot:loader"?: false | (() => import("vue").VNodeChild) | undefined; } & { "onUpdate:active"?: ((value: boolean) => any) | undefined; }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { 'update:active': (value: boolean) => true; }, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, { variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"; active: boolean; loading: boolean; style: import("vue").StyleValue; text: string | number | boolean; disabled: boolean; size: string | number; readonly: boolean; tag: string | import("../../util/index.js").JSXComponent; sizes: [VIconBtnSizes, number][]; rounded: string | number | boolean; tile: boolean; baseVariant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"; hideOverlay: boolean; iconSizes: [VIconBtnSizes, number][]; }, true, {}, import("vue").SlotsType import("vue").VNode[]; loader: () => import("vue").VNode[]; }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, { variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"; loading: boolean; style: import("vue").StyleValue; disabled: boolean; size: string | number; readonly: boolean; tag: string | import("../../util/index.js").JSXComponent; sizes: [VIconBtnSizes, number][]; tile: boolean; baseVariant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"; hideOverlay: boolean; iconSizes: [VIconBtnSizes, number][]; } & { height?: string | number | undefined; width?: string | number | undefined; active?: boolean | undefined; border?: string | number | boolean | undefined; color?: string | undefined; opacity?: string | number | undefined; rotate?: string | number | undefined; text?: string | number | boolean | undefined; class?: any; theme?: string | undefined; icon?: IconValue | undefined; elevation?: string | number | undefined; rounded?: string | number | boolean | undefined; activeColor?: string | undefined; iconColor?: string | undefined; iconSize?: string | number | undefined; activeIcon?: IconValue | undefined; activeVariant?: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" | undefined; } & { $children?: import("vue").VNodeChild | { $stable?: boolean; } | (() => import("vue").VNodeChild) | { default?: (() => import("vue").VNodeChild) | undefined; loader?: (() => import("vue").VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => import("vue").VNodeChild) | undefined; loader?: false | (() => import("vue").VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined; "v-slot:loader"?: false | (() => import("vue").VNodeChild) | undefined; } & { "onUpdate:active"?: ((value: boolean) => any) | undefined; }, {}, {}, {}, {}, { variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"; active: boolean; loading: boolean; style: import("vue").StyleValue; text: string | number | boolean; disabled: boolean; size: string | number; readonly: boolean; tag: string | import("../../util/index.js").JSXComponent; sizes: [VIconBtnSizes, number][]; rounded: string | number | boolean; tile: boolean; baseVariant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"; hideOverlay: boolean; iconSizes: [VIconBtnSizes, number][]; }>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & import("vue").ComponentOptionsBase<{ variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"; loading: boolean; style: import("vue").StyleValue; disabled: boolean; size: string | number; readonly: boolean; tag: string | import("../../util/index.js").JSXComponent; sizes: [VIconBtnSizes, number][]; tile: boolean; baseVariant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"; hideOverlay: boolean; iconSizes: [VIconBtnSizes, number][]; } & { height?: string | number | undefined; width?: string | number | undefined; active?: boolean | undefined; border?: string | number | boolean | undefined; color?: string | undefined; opacity?: string | number | undefined; rotate?: string | number | undefined; text?: string | number | boolean | undefined; class?: any; theme?: string | undefined; icon?: IconValue | undefined; elevation?: string | number | undefined; rounded?: string | number | boolean | undefined; activeColor?: string | undefined; iconColor?: string | undefined; iconSize?: string | number | undefined; activeIcon?: IconValue | undefined; activeVariant?: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" | undefined; } & { $children?: import("vue").VNodeChild | { $stable?: boolean; } | (() => import("vue").VNodeChild) | { default?: (() => import("vue").VNodeChild) | undefined; loader?: (() => import("vue").VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => import("vue").VNodeChild) | undefined; loader?: false | (() => import("vue").VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined; "v-slot:loader"?: false | (() => import("vue").VNodeChild) | undefined; } & { "onUpdate:active"?: ((value: boolean) => any) | undefined; }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { 'update:active': (value: boolean) => true; }, string, { variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"; active: boolean; loading: boolean; style: import("vue").StyleValue; text: string | number | boolean; disabled: boolean; size: string | number; readonly: boolean; tag: string | import("../../util/index.js").JSXComponent; sizes: [VIconBtnSizes, number][]; rounded: string | number | boolean; tile: boolean; baseVariant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"; hideOverlay: boolean; iconSizes: [VIconBtnSizes, number][]; }, {}, string, import("vue").SlotsType import("vue").VNode[]; loader: () => 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<{ color: StringConstructor; variant: Omit<{ type: PropType; default: string; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; default: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; }; theme: StringConstructor; tag: Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: NonNullable; }; rounded: { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }; tile: BooleanConstructor; iconSize: PropType; iconSizes: { type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; }; elevation: { type: (StringConstructor | NumberConstructor)[]; validator(v: any): boolean; }; class: PropType; style: { type: PropType; default: null; }; border: (StringConstructor | BooleanConstructor | NumberConstructor)[]; active: { type: BooleanConstructor; default: undefined; }; activeColor: StringConstructor; activeIcon: PropType; activeVariant: PropType; baseVariant: { type: PropType; default: string; }; disabled: BooleanConstructor; height: (StringConstructor | NumberConstructor)[]; width: (StringConstructor | NumberConstructor)[]; hideOverlay: BooleanConstructor; icon: PropType; iconColor: StringConstructor; loading: BooleanConstructor; opacity: (StringConstructor | NumberConstructor)[]; readonly: BooleanConstructor; rotate: (StringConstructor | NumberConstructor)[]; size: { type: PropType; default: string; }; sizes: { type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; }; text: { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }; }, import("vue").ExtractPropTypes<{ color: StringConstructor; variant: Omit<{ type: PropType; default: string; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; default: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; }; theme: StringConstructor; tag: Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: NonNullable; }; rounded: { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }; tile: BooleanConstructor; iconSize: PropType; iconSizes: { type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; }; elevation: { type: (StringConstructor | NumberConstructor)[]; validator(v: any): boolean; }; class: PropType; style: { type: PropType; default: null; }; border: (StringConstructor | BooleanConstructor | NumberConstructor)[]; active: { type: BooleanConstructor; default: undefined; }; activeColor: StringConstructor; activeIcon: PropType; activeVariant: PropType; baseVariant: { type: PropType; default: string; }; disabled: BooleanConstructor; height: (StringConstructor | NumberConstructor)[]; width: (StringConstructor | NumberConstructor)[]; hideOverlay: BooleanConstructor; icon: PropType; iconColor: StringConstructor; loading: BooleanConstructor; opacity: (StringConstructor | NumberConstructor)[]; readonly: BooleanConstructor; rotate: (StringConstructor | NumberConstructor)[]; size: { type: PropType; default: string; }; sizes: { type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; }; text: { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }; }>>; export type VIconBtn = InstanceType;