import { type App, type Component } from 'vue';
/** 非 Vue 宿主的事件监听映射（emit 名 -> handler） */
export type StandaloneEventHandlers = Record<string, (...args: unknown[]) => void>;
export interface StandaloneMountOptions<TProps extends object = Record<string, unknown>> {
    /** 组件 props */
    props?: TProps;
    /** 事件监听，键为 kebab-case emit 名（如 send-message）或已转换的 onXxx */
    on?: StandaloneEventHandlers;
}
export interface StandaloneMountHandle<TExpose, TProps extends object = Record<string, unknown>> {
    /** 内部 Vue 应用实例 */
    app: App;
    /** 当前组件 expose（挂载后 nextTick 可用） */
    getExpose: () => TExpose | null;
    /** 与 getExpose() 同步的只读访问 */
    readonly expose: TExpose | null;
    /** 合并更新 props，不重建应用 */
    updateProps: (partial: Partial<TProps>) => void;
    /** 卸载并清理 */
    unmount: () => void;
}
/**
 * 解析挂载容器
 */
export declare function resolveMountContainer(container: string | Element): Element;
/**
 * 将 on 配置转为 Vue3 vnode listener props
 */
export declare function buildStandaloneListeners(on?: StandaloneEventHandlers): Record<string, (...args: unknown[]) => void>;
/**
 * 挂载任意 Vue 组件（使用 standalone bundle 内联的 Vue runtime）
 */
export declare function mountStandaloneComponent<TProps extends object, TExpose>(container: string | Element, component: Component, options?: StandaloneMountOptions<TProps>): StandaloneMountHandle<TExpose, TProps>;
//# sourceMappingURL=standalone-mount-core.d.ts.map