import type { ComponentRegistration } from './component-registry'; import { type FluentConfigResult, type FrameworkConfig, type FrameworkTokens } from './config'; import type { ThemeDefinition } from './theme-manager'; export type FluentPlugin = (framework: FluentFramework) => void | Promise; export interface FrameworkHooks { beforeInit?: Array<() => void | Promise>; afterInit?: Array<() => void | Promise>; } /** * Main entry point for the Fluent Grow runtime. Orchestrates configuration, * component registration, worklet loading and theming. */ export declare class FluentFramework { readonly config: FluentConfigResult; private initialised; private plugins; private hooks; private themeManager; private versionManager; private featureManager; private polyfillManager; private fallbackManager; private legacyManager; constructor(config?: FrameworkConfig); /** Registers a plugin that will be executed during initialisation. */ use(plugin: FluentPlugin): this; /** Adds a lifecycle hook (beforeInit/afterInit). */ hook(type: T, callback: NonNullable[number]): this; /** Registers a theme definition with the internal theme manager. */ registerTheme(theme: ThemeDefinition): this; /** Bootstraps the framework if it has not been initialised already. */ initialise(): Promise; /** Applies tokens to the document root. */ applyTokens(tokens?: FrameworkTokens): void; /** Merges new tokens into the existing graph and reapplies them. */ updateTokens(partialTokens: FrameworkTokens): void; registerComponents(...components: ComponentRegistration[]): Promise; /** Alias for registerComponents to match test expectations */ registerComponent: (...components: ComponentRegistration[]) => Promise; ensureComponent(tag: string): Promise; applyTheme(name: string): void; /** Get browser compatibility information */ getCompatibilityInfo(): { version: import("./version-manager").VersionInfo; support: import("./version-manager").BrowserSupport; enabledFeatures: string[]; loadedPolyfills: string[]; fallbacks: Record; }; /** Check if a specific feature is available */ isFeatureAvailable(feature: string): boolean; /** Get performance and usage metrics */ getMetrics(): { performance: {}; usage: {}; }; /** Manually track feature usage */ trackFeature(_feature: string): void; /** Load a polyfill conditionally */ loadPolyfill(feature: string): Promise; private registerConfiguredComponents; private executePlugins; private runHooks; /** Cleanup resources when framework is destroyed */ destroy(): void; } //# sourceMappingURL=framework.d.ts.map