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) => { theme: unknown extends Defaults["theme"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"]; }; 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; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable; }; border: unknown extends Defaults["border"] ? (BooleanConstructor | NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["border"] ? string | number | boolean : Defaults["border"] | NonNullable; }; elevation: unknown extends Defaults["elevation"] ? { type: (NumberConstructor | StringConstructor)[]; validator: (value: string | number) => boolean; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; validator: (value: string | number) => boolean; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["elevation"] ? string | number : Defaults["elevation"] | NonNullable; }; rounded: unknown extends Defaults["rounded"] ? { type: (BooleanConstructor | NumberConstructor | StringConstructor)[]; default: undefined; } : Omit<{ type: (BooleanConstructor | NumberConstructor | StringConstructor)[]; default: undefined; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["rounded"] ? string | number | boolean : Defaults["rounded"] | NonNullable; }; tile: unknown extends Defaults["tile"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]; }; tag: unknown extends Defaults["tag"] ? Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: NonNullable; } : Omit; default: string; }, "default" | "type"> & { type: PropType; default: NonNullable; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : Defaults["tag"] | NonNullable; }; 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; }, "default" | "type"> & { type: PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">; default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">; } : Omit; default: string; validator: (v: any) => boolean; }, "default" | "type"> & { type: PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">; default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["variant"] ? "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" : Defaults["variant"] | NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">; }; active: unknown extends Defaults["active"] ? { type: BooleanConstructor; default: undefined; } : Omit<{ type: BooleanConstructor; default: undefined; }, "default" | "type"> & { 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 : Defaults["activeIcon"] | NonNullable; }; activeVariant: unknown extends Defaults["activeVariant"] ? PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"> : { type: PropType; default: unknown extends Defaults["activeVariant"] ? "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" : Defaults["activeVariant"] | NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">; }; baseVariant: unknown extends Defaults["baseVariant"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["baseVariant"] ? "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" : Defaults["baseVariant"] | NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">; }; disabled: unknown extends Defaults["disabled"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]; }; height: unknown extends Defaults["height"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["height"] ? string | number : Defaults["height"] | NonNullable; }; width: unknown extends Defaults["width"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["width"] ? string | number : Defaults["width"] | NonNullable; }; 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 : Defaults["icon"] | NonNullable; }; 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"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["opacity"] ? string | number : Defaults["opacity"] | NonNullable; }; readonly: unknown extends Defaults["readonly"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["readonly"] ? boolean : boolean | Defaults["readonly"]; }; rotate: unknown extends Defaults["rotate"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["rotate"] ? string | number : Defaults["rotate"] | NonNullable; }; size: unknown extends Defaults["size"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["size"] ? string | number : Defaults["size"] | NonNullable; }; sizes: unknown extends Defaults["sizes"] ? { type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; } : Omit<{ type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["sizes"] ? [VIconBtnSizes, number][] : [VIconBtnSizes, number][] | Defaults["sizes"]; }; text: unknown extends Defaults["text"] ? { type: (BooleanConstructor | NumberConstructor | StringConstructor)[]; default: undefined; } : Omit<{ type: (BooleanConstructor | NumberConstructor | StringConstructor)[]; default: undefined; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["text"] ? string | number | boolean : Defaults["text"] | NonNullable; }; iconSize: unknown extends Defaults["iconSize"] ? PropType : { type: PropType; default: unknown extends Defaults["iconSize"] ? string | number : Defaults["iconSize"] | NonNullable; }; iconSizes: unknown extends Defaults["iconSizes"] ? { type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; } : Omit<{ type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["iconSizes"] ? [VIconBtnSizes, number][] : [VIconBtnSizes, number][] | Defaults["iconSizes"]; }; }; export declare const VIconBtn: { new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{ style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null; tile: boolean; tag: string | import("../../util/index.js").JSXComponent; variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"; baseVariant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"; disabled: boolean; hideOverlay: boolean; loading: boolean; readonly: boolean; size: string | number; sizes: [VIconBtnSizes, number][]; iconSizes: [VIconBtnSizes, number][]; } & { theme?: string | undefined; class?: any; border?: string | number | boolean | undefined; elevation?: string | number | undefined; rounded?: string | number | boolean | undefined; color?: string | undefined; active?: boolean | undefined; activeColor?: string | undefined; activeIcon?: IconValue | undefined; activeVariant?: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" | undefined; height?: string | number | undefined; width?: string | number | undefined; icon?: IconValue | undefined; iconColor?: string | undefined; opacity?: string | number | undefined; rotate?: string | number | undefined; text?: string | number | boolean | undefined; iconSize?: string | number | undefined; } & { $children?: { default?: (() => import("vue").VNodeChild) | undefined; loader?: (() => import("vue").VNodeChild) | undefined; } | { $stable?: boolean; } | (() => import("vue").VNodeChild) | import("vue").VNodeChild; '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, { style: import("vue").StyleValue; rounded: string | number | boolean; tile: boolean; tag: string | import("../../util/index.js").JSXComponent; variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"; active: boolean; baseVariant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"; disabled: boolean; hideOverlay: boolean; loading: boolean; readonly: boolean; size: string | number; sizes: [VIconBtnSizes, number][]; text: string | number | 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: {}; }, { style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null; tile: boolean; tag: string | import("../../util/index.js").JSXComponent; variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"; baseVariant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"; disabled: boolean; hideOverlay: boolean; loading: boolean; readonly: boolean; size: string | number; sizes: [VIconBtnSizes, number][]; iconSizes: [VIconBtnSizes, number][]; } & { theme?: string | undefined; class?: any; border?: string | number | boolean | undefined; elevation?: string | number | undefined; rounded?: string | number | boolean | undefined; color?: string | undefined; active?: boolean | undefined; activeColor?: string | undefined; activeIcon?: IconValue | undefined; activeVariant?: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" | undefined; height?: string | number | undefined; width?: string | number | undefined; icon?: IconValue | undefined; iconColor?: string | undefined; opacity?: string | number | undefined; rotate?: string | number | undefined; text?: string | number | boolean | undefined; iconSize?: string | number | undefined; } & { $children?: { default?: (() => import("vue").VNodeChild) | undefined; loader?: (() => import("vue").VNodeChild) | undefined; } | { $stable?: boolean; } | (() => import("vue").VNodeChild) | import("vue").VNodeChild; '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; }, {}, {}, {}, {}, { style: import("vue").StyleValue; rounded: string | number | boolean; tile: boolean; tag: string | import("../../util/index.js").JSXComponent; variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"; active: boolean; baseVariant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"; disabled: boolean; hideOverlay: boolean; loading: boolean; readonly: boolean; size: string | number; sizes: [VIconBtnSizes, number][]; text: string | number | boolean; iconSizes: [VIconBtnSizes, number][]; }>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & import("vue").ComponentOptionsBase<{ style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null; tile: boolean; tag: string | import("../../util/index.js").JSXComponent; variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"; baseVariant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"; disabled: boolean; hideOverlay: boolean; loading: boolean; readonly: boolean; size: string | number; sizes: [VIconBtnSizes, number][]; iconSizes: [VIconBtnSizes, number][]; } & { theme?: string | undefined; class?: any; border?: string | number | boolean | undefined; elevation?: string | number | undefined; rounded?: string | number | boolean | undefined; color?: string | undefined; active?: boolean | undefined; activeColor?: string | undefined; activeIcon?: IconValue | undefined; activeVariant?: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" | undefined; height?: string | number | undefined; width?: string | number | undefined; icon?: IconValue | undefined; iconColor?: string | undefined; opacity?: string | number | undefined; rotate?: string | number | undefined; text?: string | number | boolean | undefined; iconSize?: string | number | undefined; } & { $children?: { default?: (() => import("vue").VNodeChild) | undefined; loader?: (() => import("vue").VNodeChild) | undefined; } | { $stable?: boolean; } | (() => import("vue").VNodeChild) | import("vue").VNodeChild; '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, { style: import("vue").StyleValue; rounded: string | number | boolean; tile: boolean; tag: string | import("../../util/index.js").JSXComponent; variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"; active: boolean; baseVariant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal"; disabled: boolean; hideOverlay: boolean; loading: boolean; readonly: boolean; size: string | number; sizes: [VIconBtnSizes, number][]; text: string | number | 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<{ theme: StringConstructor; class: PropType; style: { type: PropType; default: null; }; border: (BooleanConstructor | NumberConstructor | StringConstructor)[]; elevation: { type: (NumberConstructor | StringConstructor)[]; validator: (value: string | number) => boolean; }; rounded: { type: (BooleanConstructor | NumberConstructor | StringConstructor)[]; default: undefined; }; tile: BooleanConstructor; tag: Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: NonNullable; }; color: StringConstructor; variant: Omit<{ type: PropType; default: string; validator: (v: any) => boolean; }, "default" | "type"> & { type: PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">; default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">; }; active: { type: BooleanConstructor; default: undefined; }; activeColor: StringConstructor; activeIcon: PropType; activeVariant: PropType; baseVariant: { type: PropType; default: string; }; disabled: BooleanConstructor; height: (NumberConstructor | StringConstructor)[]; width: (NumberConstructor | StringConstructor)[]; hideOverlay: BooleanConstructor; icon: PropType; iconColor: StringConstructor; loading: BooleanConstructor; opacity: (NumberConstructor | StringConstructor)[]; readonly: BooleanConstructor; rotate: (NumberConstructor | StringConstructor)[]; size: { type: PropType; default: string; }; sizes: { type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; }; text: { type: (BooleanConstructor | NumberConstructor | StringConstructor)[]; default: undefined; }; iconSize: PropType; iconSizes: { type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; }; }, import("vue").ExtractPropTypes<{ theme: StringConstructor; class: PropType; style: { type: PropType; default: null; }; border: (BooleanConstructor | NumberConstructor | StringConstructor)[]; elevation: { type: (NumberConstructor | StringConstructor)[]; validator: (value: string | number) => boolean; }; rounded: { type: (BooleanConstructor | NumberConstructor | StringConstructor)[]; default: undefined; }; tile: BooleanConstructor; tag: Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: NonNullable; }; color: StringConstructor; variant: Omit<{ type: PropType; default: string; validator: (v: any) => boolean; }, "default" | "type"> & { type: PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">; default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">; }; active: { type: BooleanConstructor; default: undefined; }; activeColor: StringConstructor; activeIcon: PropType; activeVariant: PropType; baseVariant: { type: PropType; default: string; }; disabled: BooleanConstructor; height: (NumberConstructor | StringConstructor)[]; width: (NumberConstructor | StringConstructor)[]; hideOverlay: BooleanConstructor; icon: PropType; iconColor: StringConstructor; loading: BooleanConstructor; opacity: (NumberConstructor | StringConstructor)[]; readonly: BooleanConstructor; rotate: (NumberConstructor | StringConstructor)[]; size: { type: PropType; default: string; }; sizes: { type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; }; text: { type: (BooleanConstructor | NumberConstructor | StringConstructor)[]; default: undefined; }; iconSize: PropType; iconSizes: { type: PropType<[VIconBtnSizes, number][]>; default: () => (string | number)[][]; }; }>>; export type VIconBtn = InstanceType;