import { RefCallback, type RefObject } from "react";
type StaticClassType<T = any> = new (element: HTMLElement, config?: any) => T;
interface StaticInstance {
    update?: (config: any) => void;
    destroy?: () => void;
}
/**
 * A hook to create and manage an instance of a "static" class
 * @param StaticClass The class to instantiate
 * @param config Configuration options for the class
 * @returns [ref callback, instance reference]
 */
declare const useStatic: <T extends StaticInstance>(StaticClass: StaticClassType<T>, config?: Record<string, any>) => [RefCallback<HTMLElement>, RefObject<T | null>];
/**
 * A hook for creating React portals
 * From https://www.jayfreestone.com/writing/react-portals-with-hooks/
 * @param id The id of the target DOM element
 * @returns A DOM element that can be used as a portal container
 */
declare function usePortal(id: string): HTMLDivElement;
/**
 * Returns unique string for the `id` attribute.
 *
 * @param id Provided id
 * @param name Optional prefix
 * @returns A unique ID string
 */
declare const useUniqueId: (id?: string, name?: string) => string;
declare function useHydrationSafeId(providedId?: string): string;
export { useHydrationSafeId, usePortal, useStatic, useUniqueId };
