import React from 'react'; import { PlatformBlocksThemeProviderProps } from './ThemeProvider'; import type { DirectionProviderProps } from '../providers'; import type { HighlightProps as HighlightComponentProps } from '../../components/Highlight'; import type { HapticsProviderProps } from '../haptics/HapticsProvider'; import { ThemeModeConfig } from './ThemeModeProvider'; /** * The dark theme used when the app doesn't supply one of its own. * * `DARK_THEME` is a complete theme, so it's spread wholesale rather than * cherry-picked. Copying individual keys silently left every scheme-dependent * group it forgot — `surfaces`, `states`, `semantic`, `shadows` — on their light * values, which is how dark-mode overlays ended up painting a white level-2 * background under near-white text. `DEFAULT_THEME` still supplies anything the * dark theme doesn't define (e.g. `designTokens`). */ export declare const BUILT_IN_DARK_THEME: { colorScheme: "dark"; primaryColor: string; designTokens?: typeof import("..").DESIGN_TOKENS; colors: { primary: string[]; secondary: string[]; tertiary: string[]; surface: string[]; success: string[]; warning: string[]; error: string[]; gray: string[]; highlight: string[]; pink?: string[]; purple?: string[]; violet?: string[]; cyan?: string[]; lime?: string[]; sky?: string[]; amber?: string[]; indigo?: string[]; teal?: string[]; }; text: { primary: string; secondary: string; muted: string; disabled: string; link: string; onPrimary?: string; }; backgrounds: { base: string; subtle: string; surface: string; elevated: string; border: string; }; surfaces?: import("./types").SurfaceScale; states?: { focusRing?: string; textSelection?: string; highlightText?: string; highlightBackground?: string; }; fontFamily: string; fontSizes: { xs: string; sm: string; md: string; lg: string; xl: string; "2xl": string; "3xl": string; }; spacing: { xs: string; sm: string; md: string; lg: string; xl: string; "2xl": string; "3xl": string; }; radii: { xs: string; sm: string; md: string; lg: string; xl: string; "2xl": string; "3xl": string; }; shadows: { xs: string; sm: string; md: string; lg: string; xl: string; }; breakpoints: { xs: string; sm: string; md: string; lg: string; xl: string; }; motion: { easing: { ease: string; easeIn: string; easeOut: string; easeInOut: string; spring: string; }; duration: { instant: string; fast: string; normal: string; slow: string; }; }; semantic: { accent: string; borderDefault: string; borderSubtle: string; surfaceElevated: string; surfaceCard: string; focusRing: string; }; components: Record; other: Record; }; type DirectionProviderConfig = Omit; type HapticsProviderConfig = Omit; export interface PlatformBlocksProviderProps extends Omit { /** Your application */ children: React.ReactNode; /** Whether to inject CSS variables */ withCSSVariables?: boolean; /** CSS selector where variables should be applied */ cssVariablesSelector?: string; /** * Color scheme mode: * - 'auto': automatically follows OS preference * - 'light': force light mode * - 'dark': force dark mode */ colorSchemeMode?: 'auto' | 'light' | 'dark'; /** Whether to enable overlay system (menus, tooltips, etc.) */ withOverlays?: boolean; /** Whether to inject global CSS for universal props (lightHidden/darkHidden) */ withGlobalCSS?: boolean; /** Enhanced theme mode configuration */ themeModeConfig?: ThemeModeConfig; /** Lazily mount Spotlight search UI at library level (opt-in) */ withSpotlight?: boolean; /** Configure Spotlight behavior at provider level */ spotlightConfig?: { shortcut?: string | string[] | null; actions?: any[]; placeholder?: string; limit?: number; highlightQuery?: boolean | HighlightComponentProps['highlight']; /** Render Spotlight even when no actions provided (useful to inject later) */ alwaysMount?: boolean; }; /** i18n: initial active locale */ locale?: string; /** i18n: fallback locale */ fallbackLocale?: string; /** i18n: resources map */ i18nResources?: Record; }>; /** Direction context configuration (pass false to opt out) */ direction?: false | DirectionProviderConfig; /** Haptics context configuration (pass false to opt out) */ haptics?: false | HapticsProviderConfig; } /** * Main provider component for Platform Blocks library * Provides theme context and injects CSS variables */ export declare function PlatformBlocksProvider({ children, theme, inherit, withCSSVariables, cssVariablesSelector, colorSchemeMode, withOverlays, withSpotlight, withGlobalCSS, themeModeConfig, spotlightConfig, locale, fallbackLocale, i18nResources, direction, haptics }: PlatformBlocksProviderProps): React.JSX.Element; export declare namespace PlatformBlocksProvider { var displayName: string; } export {};