export declare type Descendant> = P & { element: T | null; index?: number; disabled?: boolean; focusable?: boolean; }; export interface DescendantContext> { descendants: Descendant[]; register: (descendant: Descendant) => void; unregister: (element: T) => void; } export declare type UseDescendantProps = { context: DescendantContext; } & Descendant; export declare function useDescendant(props: UseDescendantProps): number; export declare function useDescendants(): { descendants: Descendant[]; register: ({ element, ...rest }: Descendant) => void; unregister: (element: T) => void; };