import type { Ref } from 'vue'; /** * Creates a Proxy that forwards all properties from a child component ref * while also exposing custom properties. This allows wrapper components to * expose both their own properties and all child component properties. * * TypeScript-safe and works with defineExpose and event emitters. * * @template T - Type of the child component instance * @template C - Type of custom properties to expose * @param childRef - Template ref to the child component * @param customProps - Custom properties/methods to expose alongside child properties * @returns Proxy object that forwards child properties and includes custom properties * * @example * // In a wrapper component * const childRef = ref(null); * const customProp = ref('value'); * const customMethod = () => console.log('custom'); * * const exposedAPI = useExposeForwarding(childRef, { * customProp, * customMethod, * }); * * defineExpose(exposedAPI); * emit('refMounted', exposedAPI); * * // Parent can now access: * // - All child component methods/properties * // - customProp * // - customMethod */ export declare function useExposeForwarding = Record>(childRef: Ref, customProps: C): C & T;