import { JSX, ReactNode } from 'react';
import { DOMProps, Href, RouterOptions } from '@react-types/shared';
import { StyleString } from '../style/types';
import { UnsafeStyles } from './style-utils';
export type ColorScheme = 'light' | 'dark';
interface Router {
    navigate: (path: string, routerOptions: RouterOptions | undefined) => void;
    useHref?: (href: Href) => string;
}
export interface ProviderProps extends UnsafeStyles, DOMProps {
    /** The content of the Provider. */
    children: ReactNode;
    /**
     * The locale for your application as a [BCP 47](https://www.ietf.org/rfc/bcp/bcp47.txt) language code.
     * Defaults to the browser/OS language setting.
     * @default 'en-US'
     */
    locale?: string;
    /**
     * Provides a client side router to all nested React Spectrum links to enable client side navigation.
     */
    router?: Router;
    /**
     * The color scheme for your application.
     * Defaults to operating system preferences.
     */
    colorScheme?: ColorScheme;
    /** The background for this provider. If not provided, the background is transparent. */
    background?: 'base' | 'layer-1' | 'layer-2';
    /** Spectrum-defined styles, returned by the `style()` macro. */
    styles?: StyleString;
    /**
     * The DOM element to render.
     * @default div
     */
    elementType?: keyof JSX.IntrinsicElements;
}
export declare const ColorSchemeContext: import("react").Context<"light dark" | ColorScheme | null>;
/**
 * Provider is the container for all React Spectrum components.
 * It loads the font and sets the colorScheme, locale, and other application level settings.
 */
export declare function Provider(props: ProviderProps): JSX.Element;
export {};
