/**
 * CSS-based scroll prevention using position: fixed.
 *
 * Prevents body/page scrolling by temporarily fixing the body position
 * while preserving scroll position. Much more reliable than event prevention.
 *
 * Key benefits:
 * - No event manipulation complexity
 * - No interference with component keyboard navigation
 * - Preserves scroll position perfectly
 * - Standard industry technique
 * - Multiple component support with proper cleanup
 */
declare global {
    interface Window {
        tyScrollDebug?: boolean;
    }
}
/**
 * Lock scrolling for a specific component.
 *
 * Multiple components can lock scrolling simultaneously.
 * Scroll remains locked until ALL components unlock.
 *
 * @param componentId - Unique identifier for the component
 */
export declare function lockScroll(componentId: string): void;
/**
 * Unlock scrolling for a specific component.
 *
 * Scroll remains locked if other components still have locks active.
 *
 * @param componentId - Unique identifier for the component
 */
export declare function unlockScroll(componentId: string): void;
/**
 * Emergency unlock - removes all scroll locks immediately.
 *
 * Use this for cleanup or error recovery scenarios.
 */
export declare function forceUnlockAll(): void;
/**
 * Enable scroll lock debugging - useful for testing and development
 */
export declare function enableDebug(): void;
/**
 * Disable scroll lock debugging
 */
export declare function disableDebug(): void;
/**
 * Get the set of currently active component locks.
 *
 * @returns Set of component IDs that currently have scroll locked
 */
export declare function getActiveLocks(): Set<string>;
/**
 * Check if scrolling is currently locked.
 *
 * @returns true if any component has scroll locked
 */
export declare function isLocked(): boolean;
/**
 * Check if scrolling is locked by a specific component.
 *
 * @param componentId - Component identifier to check
 * @returns true if this specific component has scroll locked
 */
export declare function isLockedBy(componentId: string): boolean;
/**
 * Get the complete lock state for debugging.
 *
 * @returns Current state including scroll position and active locks
 */
export declare function getLockState(): Readonly<{
    locked: boolean;
    scrollY: number;
    activeLocks: string[];
}>;
//# sourceMappingURL=scroll-lock.d.ts.map