import type * as React from 'react';
type WithReactChildren<T> = Omit<T, 'children'> & {
    children?: React.ReactNode;
};
type GdsComponentProps<T> = WithReactChildren<{
    [K in keyof T]?: T[K];
}> & Omit<React.HTMLAttributes<HTMLElement>, 'children'> & React.RefAttributes<HTMLElement>;
/**
 * Get a React 19 compatible component from a GDS component
 *
 * @example
 * ```tsx
 * import { getReactComponent } from '@sebgroup/green-core/utils/react'
 * import type { GdsButton as GdsButtonType } from '@sebgroup/green-core/components/button/index.js'
 * import '@sebgroup/green-core/components/button/index.js'
 *
 * const GdsButton = getReactComponent<GdsButtonType>('gds-button')
 *
 * // Now you can use <GdsButton> as a React component with correct typings
 * ```
 */
export declare function getReactComponent<T>(tagName: string): React.ComponentType<GdsComponentProps<T>>;
/**
 * Hook to implement controlled component behavior for form controls with a value property
 */
export declare function useControlledValue<TElement extends HTMLElement = HTMLElement>(elementRef: React.RefObject<TElement | null>, value: any, defaultValue: any, onChange?: (event: any) => void, onInput?: (event: any) => void): void;
/**
 * Hook to implement controlled component behavior for checkbox form controls with a checked property
 */
export declare function useControlledChecked<TElement extends HTMLElement = HTMLElement>(elementRef: React.RefObject<TElement | null>, checked: boolean | undefined, defaultChecked: boolean | undefined, onChange?: (event: any) => void, onInput?: (event: any) => void): void;
export {};
