import type { EmitsOptions, ObjectEmitsOptions } from 'vue'; import type { UnionToIntersection } from '@nzyme/types'; export declare function useEmit(): EmitFn; export declare function useEmit(emitOptions: E): EmitFn; type EmitFn = Options extends Array ? (event: V, ...args: any[]) => void : {} extends Options ? (event: string, ...args: any[]) => void : UnionToIntersection<{ [key in Event]: Options[key] extends (...args: infer Args) => any ? (event: key, ...args: Args) => void : Options[key] extends any[] ? (event: key, ...args: Options[key]) => void : (event: key, ...args: any[]) => void; }[Event]>; export {};