export interface Descendant { element: HTMLElement; props: T; } declare class DescendantsManager { items: Descendant[]; register({ element, ...props }: Descendant): void; unregister(element: HTMLElement): void; } declare const useDescendants: () => DescendantsManager; declare const useDescendant: (descendants: DescendantsManager, props: T) => { ref: (value: any) => void; index: number; }; export { useDescendants, useDescendant, DescendantsManager };