import { EmitFn } from 'vue';
import { EmitListeners } from './useEmitListeners';
/**
 * Defines the structure for a mouse event configuration.
 */
interface MouseEventOptions {
    event: string;
    button?: number;
    prevent?: boolean;
    stop?: boolean;
    result?: any;
}
/**
 * Defines a function signature for event transformation.
 */
type GetEventFunction = (_event: MouseEvent | TouchEvent, _eventName: string) => any;
/**
 * Generates mouse event handlers based on event listeners.
 * @param {Function} emit - Vue's emit function.
 * @param {Ref<Listeners>} listeners - Vue ref containing event listeners.
 * @param {Record<string, MouseEventOptions>} events - Object defining mouse events and their options.
 * @param {GetEventFunction} getEvent - Function to transform event objects.
 * @returns {Record<string, Function | Function[]>} - The mapped mouse event handlers.
 */
export declare function getMouseEventHandlers(emit: EmitFn, listeners: EmitListeners, events: Record<string, MouseEventOptions>, getEvent: GetEventFunction): Record<string, Function | Function[]>;
/**
 * Returns default mouse event handlers based on a suffix.
 * @param {Function} emit - Vue's emit function.
 * @param {Ref<Listeners>} listeners - Vue ref containing event listeners.
 * @param {string} suffix - Event suffix (e.g., '-day' for 'click-day').
 * @param {GetEventFunction} getEvent - Function to transform event objects.
 * @returns {Record<string, Function | Function[]>} - The mapped event handlers.
 */
export declare function getDefaultMouseEventHandlers(emit: EmitFn, listeners: EmitListeners, suffix: string, getEvent: GetEventFunction): Record<string, Function | Function[]>;
/**
 * Generates event names for different mouse interactions.
 * @param {string} suffix - Event suffix (e.g., '-day' for 'click-day').
 * @returns {Record<string, MouseEventOptions>} - The event name map.
 */
export declare function getMouseEventName(suffix: string): Record<string, MouseEventOptions>;
/**
 * Returns an array of raw event names based on a suffix.
 * @param {string} suffix - Event suffix.
 * @returns {string[]} - The raw event names.
 */
export declare function getRawMouseEvents(suffix: string): string[];
/**
 * Default function export that provides mouse event handling utilities.
 * @param {Function} emit - Vue's emit function.
 * @param {Ref<Listeners>} listeners - Vue ref containing event listeners.
 * @returns {Object} - Functions for managing mouse event handlers.
 */
export default function useMouseEvents(emit: EmitFn, listeners: EmitListeners): {
    getMouseEventHandlers: (_events: Record<string, MouseEventOptions>, _getEvent: GetEventFunction) => Record<string, Function | Function[]>;
    getDefaultMouseEventHandlers: (_suffix: string, _getEvent: GetEventFunction) => Record<string, Function | Function[]>;
    getMouseEventName: (_suffix: string) => Record<string, MouseEventOptions>;
    getRawMouseEvents: (_suffix: string) => string[];
};
export {};
