import { type ComponentProps } from 'react';
import { DirectionProvider } from '@base-ui/react/direction-provider';
import { type ButtonOrLinkConfigProps } from './components/base/ButtonOrLink.tsx';
type Theme = 'dark' | 'light' | 'system';
export interface GDSProviderProps extends Omit<ComponentProps<'div'>, 'dir'> {
    /** @default 'dark' */
    theme?: Theme | undefined;
    /** @default 'ltr' */
    direction?: ComponentProps<typeof DirectionProvider>['direction'] | undefined;
    /** @default 'en' // or if `direction` is `rtl`, 'ar' */
    language?: string | undefined;
    buttonOrLinkConfig?: Omit<ButtonOrLinkConfigProps, 'children'> | undefined;
}
export type { GDSContextValue } from './GDSContext.ts';
/**
 * Provides global configuration and enhancements for GDS components.
 *
 * Note: Only one GDSProvider should be used per app, typically at the root. If you need different
 * themes for different parts of the app, use the `gds-dark` / `gds-light` utility classes instead.
 *
 * Currently implements:
 *
 * - An easy way to configure the root theme (dark/light/system), text direction, and `ButtonOrLink`
 *   config.
 * - Space key handler for improved `active` state behavior.
 * - Shared delay for multiple tooltips (once a tooltip is visible, adjacent tooltips show instantly).
 *
 * @example
 *
 * ```tsx
 * import { GDSProvider } from '@graphprotocol/gds-react'
 *
 * function App() {
 *   return (
 *     <GDSProvider theme="dark">
 *       <YourApp />
 *     </GDSProvider>
 *   )
 * }
 * ```
 */
export declare function GDSProvider({ theme, direction, language, buttonOrLinkConfig, children, className, ...props }: GDSProviderProps): import("react/jsx-runtime").JSX.Element;
interface PreHydrationStyleProps extends ComponentProps<'style'> {
}
/**
 * Renders a `<style>` element that exists only until React hydration completes.
 *
 * This component outputs its `<style>` tag during server-side rendering and during the client’s
 * initial render, ensuring the markup matches and avoiding hydration mismatches.
 *
 * Once hydration completes, the style tag is removed automatically.
 */
export declare function PreHydrationStyle(props: PreHydrationStyleProps): import("react/jsx-runtime").JSX.Element | null;
//# sourceMappingURL=GDSProvider.d.ts.map