import { default as React } from 'react';
import { ThemeConfig, ThemeContextValue } from './types';
/**
 * Theme Context
 */
declare const ThemeContext: React.Context<ThemeContextValue | undefined>;
/**
 * ThemeProvider Props
 */
export interface ThemeProviderProps {
    /** Children components */
    children: React.ReactNode;
    /** Custom theme configuration - akan di-merge dengan default theme */
    theme?: ThemeConfig;
    /** Jika true, akan langsung apply theme saat mount */
    applyOnMount?: boolean;
}
/**
 * ThemeProvider Component
 *
 * Component ini menyediakan context untuk theming dan otomatis apply CSS variables
 *
 * @example
 * ```tsx
 * import { ThemeProvider } from 'ds-smart-ui';
 *
 * // Brand A dengan primary color merah
 * const brandATheme = {
 *   colors: {
 *     primary: {
 *       500: '#ff0000', // red
 *       // atau gunakan full palette
 *     }
 *   }
 * };
 *
 * function App() {
 *   return (
 *     <ThemeProvider theme={brandATheme}>
 *       <YourApp />
 *     </ThemeProvider>
 *   );
 * }
 * ```
 */
export declare const ThemeProvider: React.FC<ThemeProviderProps>;
/**
 * Hook untuk menggunakan theme context
 *
 * @example
 * ```tsx
 * import { useTheme } from 'ds-smart-ui';
 *
 * function MyComponent() {
 *   const { theme, setTheme } = useTheme();
 *
 *   const changeToBrandB = () => {
 *     setTheme({
 *       colors: {
 *         primary: {
 *           500: '#00ff00' // green
 *         }
 *       }
 *     });
 *   };
 *
 *   return <button onClick={changeToBrandB}>Change Theme</button>;
 * }
 * ```
 */
export declare const useTheme: () => ThemeContextValue;
/**
 * Export ThemeContext for advanced use cases
 */
export { ThemeContext };
