import { Ref } from 'vue';
type MaybeRef<T> = Ref<T> | T;
type UseEventEventName = keyof GlobalEventHandlersEventMap | string[];
type UseEventEvent<N extends UseEventEventName, D> = N extends keyof GlobalEventHandlersEventMap ? GlobalEventHandlersEventMap[N] : D;
/**
 * SSR safety listen to target event.
 * @param target by default window
 * @param event if string, listener will be fully typed. If array of string, you need to type event manually.
 *
 *
 * @example
 * ```ts
 * useEvent('resize': (e) => {})
 * useEvent(['mousedown', 'mouseup', 'mousemove'], (e) => {})
 * ```
 */
export declare const useEvent: <N extends UseEventEventName, E extends Event>(event: N, listener: (this: GlobalEventHandlers, event: UseEventEvent<N, E>) => any, target?: MaybeRef<unknown> | boolean) => void;
export {};
