import { ComputedRef, Ref } from 'vue'; import { BaseSurfaceMode, BaseSurfaceProps } from './types'; export declare const SURFACE_MOTION_DURATION_MS = 299; export declare const REFRACTION_PARAM_BLEND_DURATION_MS = 182; export declare const REFRACTION_MASK_RELEASE_DELAY_AFTER_FALLBACK_MS = 60; export declare const REFRACTION_RECOVERY_DURATION_FACTOR = 0.35; export declare const REFRACTION_MASK_RELEASE_DURATION_MS: number; export declare const REFRACTION_MASK_PEAK_OPACITY = 0.95; /** * Opacity of the dedicated motion cover while a refraction surface moves. * Deliberately translucent: the sampling-stale filter layers fade themselves * out (layered degradation), so the cover only has to hold the surface's * visual weight — it no longer has to HIDE anything, which is what used to * force it up to the near-opaque mask peak and made the recovery read as a * solid colour slowly draining away. */ export declare const REFRACTION_MOTION_COVER_OPACITY = 0.55; export declare const REFRACTION_MASK_PEAK_RAMP_DURATION_MS = 180; export declare const REFRACTION_EDGE_REVEAL_DELAY_MS = 60; export declare const REFRACTION_EDGE_REVEAL_DURATION_MS = 220; export declare const REFRACTION_MASK_RELEASE_SLOWDOWN = 1; export declare const REFRACTION_MOVING_PARAM_FLOOR = 0.28; interface UseBaseSurfaceMotionOptions { props: Readonly; /** The mode the surface renders, after `autoDetect`'s environment degradation; `props.mode` when absent. */ mode?: ComputedRef; /** Page-wide motion `autoDetect` infers (a fast drag, a moving window), already held for its settle time. */ environmentMoving?: ComputedRef; /** How long the surface's own transform signals stay quiet before the motion ends; 140ms by default. */ autoDetectSettleMs?: number; rootRef: Ref; needsFallback: ComputedRef; settleDelayMs: ComputedRef; refractionRecoveryBlendDurationMs: ComputedRef; refractionRecoveryTotalDurationMs: ComputedRef; } export declare function useBaseSurfaceMotion(options: UseBaseSurfaceMotionOptions): { isMoving: ComputedRef; settling: Ref; refractionRecovering: Ref; refractionRecoveryProgress: Ref; refractionRecoveryElapsed: Ref; refractionMaskPeakRampProgress: Ref; refractionEdgeRevealProgress: Ref; }; export {};