import { type Ref } from 'vue'; export interface UseToggleAnimationOptions { /** * Duration of the animation in milliseconds * @default 300 */ duration?: number; /** * Whether to start with the element visible * @default false */ initialVisible?: boolean; } export interface UseToggleAnimationReturn { /** * Whether the element should be visible in the DOM */ isVisible: Ref; /** * Whether the element should show the "show" animation (fade-in) */ shouldShow: Ref; /** * Whether the element should show the "hide" animation (fade-out) */ shouldHide: Ref; /** * Function to toggle the visibility with animation */ toggle: (visible: boolean) => void; /** * Function to show the element with animation */ show: () => void; /** * Function to hide the element with animation */ hide: () => void; /** * Function to immediately set visibility without animation */ setVisible: (visible: boolean) => void; /** * Cleanup function to clear any pending timeouts */ cleanup: () => void; } /** * Composable for managing toggle animations with proper timeout cleanup * * @param options Configuration options for the animation * @returns Object with visibility state and control functions * */ export declare function useToggleAnimation(options?: UseToggleAnimationOptions): UseToggleAnimationReturn;