import type { PropType } from 'vue';
import type { IconValue } from '../icons/types';
export declare const makeIconProps: <Defaults extends {
    icon?: unknown;
    tag?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
    icon: unknown extends Defaults["icon"] ? (StringConstructor | ObjectConstructor | FunctionConstructor)[] : {
        type: PropType<unknown extends Defaults["icon"] ? unknown : {} | Defaults["icon"]>;
        default: unknown extends Defaults["icon"] ? unknown : {} | Defaults["icon"];
    };
    tag: unknown extends Defaults["tag"] ? {
        type: StringConstructor;
        default: string;
    } : Omit<{
        type: StringConstructor;
        default: string;
    }, "type" | "default"> & {
        type: PropType<unknown extends Defaults["tag"] ? string : string | Defaults["tag"]>;
        default: unknown extends Defaults["tag"] ? string : string | Defaults["tag"];
    };
};
export declare const makeIconSetProps: <Defaults extends {
    icon?: unknown;
    tag?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
    icon: unknown extends Defaults["icon"] ? {
        type: PropType<IconValue>;
        required: true;
    } : Omit<{
        type: PropType<IconValue>;
        required: true;
    }, "type" | "default"> & {
        type: PropType<unknown extends Defaults["icon"] ? IconValue : Defaults["icon"] | NonNullable<IconValue>>;
        default: unknown extends Defaults["icon"] ? IconValue : Defaults["icon"] | NonNullable<IconValue>;
    };
    tag: unknown extends Defaults["tag"] ? {
        type: StringConstructor;
        required: true;
    } : Omit<{
        type: StringConstructor;
        required: true;
    }, "type" | "default"> & {
        type: PropType<unknown extends Defaults["tag"] ? string : string | Defaults["tag"]>;
        default: unknown extends Defaults["tag"] ? string : string | Defaults["tag"];
    };
};
