// Free-tier sections are exported eagerly: every operator sees them on every
// install so static imports keep first-paint fast.
export { AccountSection } from './AccountSection';
export { AppearanceSection } from './AppearanceSection';
export { LicenseSection } from './LicenseSection';
export { HostAlertsSection } from './HostAlertsSection';
export { ContainerAlertsSection } from './ContainerAlertsSection';
export { DockerStorageSection } from './DockerStorageSection';
export { UpdatesSection } from './UpdatesSection';
export { FleetMeshSection } from './FleetMeshSection';
export { NotificationsSection } from './NotificationsSection';
export { DeveloperSection } from './DeveloperSection';
export { DataRetentionSection } from './DataRetentionSection';
export { AppStoreSection } from './AppStoreSection';
export { StacksSection } from './StacksSection';
export { SupportSection } from './SupportSection';
export { AboutSection } from './AboutSection';
export { RecoverySection } from './RecoverySection';

// Paid-tier sections (UsersSection, WebhooksSection,
// LabelsSection, CloudBackupSection, NotificationRoutingSection) are NOT
// re-exported from this barrel. They are dynamically imported with
// React.lazy in SettingsPage.tsx so their JSX, copy, and prop shapes do not
// land in the bundle a Community user downloads. Re-adding any of them as a
// static export here would defeat the split: rollup detects the static path
// and keeps the module in the main chunk regardless of the lazy() call.
export { DEFAULT_SETTINGS } from './types';
export type { PatchableSettings, SectionId, Agent } from './types';
export {
    SETTINGS_GROUPS,
    SETTINGS_ITEMS,
    getSettingsItem,
    getSettingsGroup,
    isItemVisible,
    isItemLocked,
    scopeLabel,
} from './registry';
export type {
    SettingsGroupId,
    SettingsGroupMeta,
    SettingsItemMeta,
    TierGate,
    Scope,
    VisibilityContext,
} from './registry';
export { SettingsSection } from './SettingsSection';
export { SettingsField, type SettingsFieldTone } from './SettingsField';
export { SettingsCallout, type SettingsCalloutTone } from './SettingsCallout';
export { SettingsActions, SettingsPrimaryButton, SettingsSecondaryButton } from './SettingsActions';
export { useMastheadStats } from './MastheadStatsContext';
