import { type PropType } from 'vue';
export interface VueFactoryPayload<Props extends Record<string, any> = Record<string, any>> {
    name: string;
    props?: Record<string, any>;
    setup: (props: Props, ctx: {
        attrs: Record<string, unknown>;
        slots: any;
        emit: any;
        ref: any;
    }) => any;
}
export declare function factory<Props extends Record<string, any>>(payload: VueFactoryPayload<Props>): import("vue").DefineComponent<{}, () => any, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {
    [x: string]: any;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export interface FactoryBoxProps {
    component?: string;
    class?: any;
    style?: any;
}
export declare const polymorphicProps: {
    component: {
        type: PropType<string>;
        default: undefined;
    };
};
export declare function renderPolymorphic(component: string | undefined, props: Record<string, any>, children?: any): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>;
