import { ReactNode } from 'react';
import { WindowProvider } from './WindowContext';
import { DesktopProvider } from './DesktopContext';
import { SettingsProvider } from './SettingsContext';
import { NotificationProvider } from './NotificationContext';

export function OSProviders({ children }: { children: ReactNode }) {
  return (
    <SettingsProvider>
      <NotificationProvider>
        <DesktopProvider>
          <WindowProvider>
            {children}
          </WindowProvider>
        </DesktopProvider>
      </NotificationProvider>
    </SettingsProvider>
  );
}

export { useWindows } from './WindowContext';
export { useDesktop } from './DesktopContext';
export { useSettings } from './SettingsContext';
export { useNotifications } from './NotificationContext';
export type { WindowState } from './WindowContext';
export type { Toast } from './NotificationContext';
export type { ClearanceMode, ClearanceTheme } from './SettingsContext';
