import { AppearanceManager } from './appearance';
import { LocalizationManager } from './localization';
import { OrganizationConfigManager } from './organization';
import { ThemeManager } from './theme';
import { ConfigValidationResult, FrankAuthUIConfig, OrganizationConfig, UserType } from './types';
export type { FrankAuthUIConfig, ConfigValidationError, ConfigValidationResult, } from './types';
export type { ThemeMode, Typography, } from './types';
export type { AppearanceConfig, AppearanceMode, ComponentAppearance, BrandingConfig, ComponentSize, ColorVariant, } from './types';
export type { LocalizationConfig, Locale, LocaleDirection, } from './types';
export type { OrganizationConfig, OrganizationSettings, UserType, ComponentOverrides, } from './types';
export type { OrganizationFeatureFlags, OrganizationLimits, OrganizationCompliance, ExtendedOrganizationConfig, } from './organization';
export { DEFAULT_FRANK_AUTH_CONFIG as defaultConfig, CONFIG_PRESETS as configPresets, DEFAULT_THEME_CONFIG as defaultTheme, DEFAULT_COLOR_PALETTE as defaultColors, DEFAULT_TYPOGRAPHY as defaultTypography, DEFAULT_SPACING as defaultSpacing, DEFAULT_BORDER_RADIUS as defaultBorderRadius, DEFAULT_SHADOWS as defaultShadows, DEFAULT_ANIMATIONS as defaultAnimations, DEFAULT_APPEARANCE_CONFIG as defaultAppearance, DEFAULT_COMPONENT_APPEARANCE as defaultComponentAppearance, DEFAULT_LAYOUT_CONFIG as defaultLayout, DEFAULT_BRANDING_CONFIG as defaultBranding, DEFAULT_LOCALIZATION_CONFIG as defaultLocalization, DEFAULT_LOCALE_MESSAGES as defaultMessages, DEFAULT_ORGANIZATION_CONFIG as defaultOrganization, } from './defaults';
export { ThemeManager, THEME_PRESETS as themePresets, createThemeManager, createDarkTheme, getThemeCSS, validateTheme, } from './theme';
export { AppearanceManager, INPUT_VARIANTS as inputVariants, BUTTON_VARIANTS as buttonVariants, CARD_VARIANTS as cardVariants, SIZE_CONFIGS as sizeConfigs, MODAL_SIZES as modalSizes, BREAKPOINTS as breakpoints, RESPONSIVE_UTILITIES as responsiveUtils, createAppearanceManager, getComponentClassNames, appearanceConfigToTailwind, createResponsiveProps, } from './appearance';
export { LocalizationManager, createLocalizationManager, detectBrowserLocale, getLocaleDirection, isRTL, createTranslationNamespace, } from './localization';
export { OrganizationConfigManager, createOrganizationConfigManager, transformOrganizationSettings, getFeaturesByTier, } from './organization';
export { validateFrankAuthConfig, validateThemeConfig, validateAppearanceConfig, validateLocalizationConfig, validateOrganizationConfig, validateComponentOverrides, validatePublishableKey, validateApiUrl, validateUserType, validateLocale, assertValidConfig, isValidConfig, getConfigErrors, getConfigWarnings, } from './validators';
/**
 * Comprehensive configuration manager that orchestrates all configuration aspects
 */
export declare class ConfigManager {
    private config;
    private themeManager;
    private appearanceManager;
    private localizationManager;
    private organizationManager?;
    private listeners;
    constructor(initialConfig: Partial<FrankAuthUIConfig>);
    /**
     * Get current configuration
     */
    getConfig(): FrankAuthUIConfig;
    /**
     * Update configuration
     */
    updateConfig(updates: Partial<FrankAuthUIConfig>): void;
    /**
     * Set organization configuration
     */
    setOrganization(organization: OrganizationConfig): void;
    /**
     * Get theme manager
     */
    getThemeManager(): ThemeManager;
    /**
     * Get appearance manager
     */
    getAppearanceManager(): AppearanceManager;
    /**
     * Get localization manager
     */
    getLocalizationManager(): LocalizationManager;
    /**
     * Get organization manager
     */
    getOrganizationManager(): OrganizationConfigManager | undefined;
    /**
     * Apply configuration to DOM
     */
    applyToDOM(): void;
    /**
     * Generate complete CSS for server-side rendering
     */
    generateCSS(): string;
    /**
     * Validate current configuration
     */
    validateConfig(): ConfigValidationResult;
    /**
     * Subscribe to configuration changes
     */
    subscribe(callback: (config: FrankAuthUIConfig) => void): () => void;
    /**
     * Reset to default configuration
     */
    reset(): void;
    /**
     * Destroy and cleanup
     */
    destroy(): void;
    private setupManagerListeners;
    private applyInitialConfiguration;
    private notifyListeners;
}
/**
 * Create a complete Frank Auth configuration with validation
 */
export declare function createFrankAuthConfig(config: Partial<FrankAuthUIConfig>): FrankAuthUIConfig;
/**
 * Create a configuration manager instance
 */
export declare function createConfigManager(config: Partial<FrankAuthUIConfig>): ConfigManager;
/**
 * Create configuration from organization settings (useful for server-side setup)
 */
export declare function createConfigFromOrganization(publishableKey: string, userType: UserType, organizationSettings: any): FrankAuthUIConfig;
/**
 * Merge multiple configuration objects with proper type safety
 */
export declare function mergeConfigs(...configs: Partial<FrankAuthUIConfig>[]): FrankAuthUIConfig;
/**
 * Create a configuration preset
 */
export declare function createConfigPreset(presetName: 'minimal' | 'enterprise' | 'b2b' | 'consumer', overrides?: Partial<FrankAuthUIConfig>): Partial<FrankAuthUIConfig>;
export * from './types';
export { ConfigManager as default };
//# sourceMappingURL=index.d.ts.map