import React from 'react';
export interface GlassFocusOptions {
    /** Enable glass focus ring */
    enabled?: boolean;
    /** Focus ring color */
    color?: string;
    /** Focus ring width */
    width?: number;
    /** Focus ring blur */
    blur?: number;
    /** Focus ring spread */
    spread?: number;
    /** Animation duration */
    duration?: number;
    /** Focus ring offset */
    offset?: number;
    /** Focus ring position */
    position?: string;
    /** Custom focus styles */
    customStyles?: Record<string, any>;
    /** Enable keyboard navigation */
    keyboardNavigation?: boolean;
    /** Auto-focus on mount */
    autoFocus?: boolean;
    /** Focus trap behavior */
    focusTrap?: boolean;
    /** Restore focus on unmount */
    restoreFocus?: boolean;
}
export interface GlassFocusState {
    isFocused: boolean;
    isKeyboardFocused: boolean;
    focusOrigin: 'mouse' | 'keyboard' | 'programmatic' | null;
    focusRingVisible: boolean;
    previousFocusedElement: Element | null;
}
export declare function useGlassFocus(options?: GlassFocusOptions): {
    ref: React.RefObject<HTMLElement>;
    focusState: GlassFocusState;
    baseStyle: React.CSSProperties;
    focus: () => void;
    blur: () => void;
    options: {
        enabled: boolean;
        color: string;
        width: number;
        blur: number;
        spread: number;
        duration: number;
        offset: number;
        position: string;
        customStyles: Record<string, any>;
        keyboardNavigation: boolean;
        autoFocus: boolean;
        focusTrap: boolean;
        restoreFocus: boolean;
    };
};
export declare function useGlassFocusGroup(options?: GlassFocusOptions & {
    elements: HTMLElement[];
    loop?: boolean;
}): {
    currentFocusIndex: number;
    moveFocus: (direction: "next" | "previous" | "first" | "last") => void;
    focusOptions: {
        /** Enable glass focus ring */
        enabled?: boolean;
        /** Focus ring color */
        color?: string;
        /** Focus ring width */
        width?: number;
        /** Focus ring blur */
        blur?: number;
        /** Focus ring spread */
        spread?: number;
        /** Animation duration */
        duration?: number;
        /** Focus ring offset */
        offset?: number;
        /** Focus ring position */
        position?: string;
        /** Custom focus styles */
        customStyles?: Record<string, any>;
        /** Enable keyboard navigation */
        keyboardNavigation?: boolean;
        /** Auto-focus on mount */
        autoFocus?: boolean;
        /** Focus trap behavior */
        focusTrap?: boolean;
        /** Restore focus on unmount */
        restoreFocus?: boolean;
    };
};
export declare function useSkipLinks(links: Array<{
    id: string;
    label: string;
    targetId: string;
}>): {
    visible: boolean;
    links: {
        id: string;
        label: string;
        targetId: string;
    }[];
    skipTo: (targetId: string) => void;
};
//# sourceMappingURL=useGlassFocus.d.ts.map