import { Platform } from '../../utils/types.js';
export type { Platform } from '../../utils/types.js';
export { ANGULAR_PLATFORM, ANGULAR_USAGE_EXAMPLES, type AngularThemeTemplate, type CoreMixinOptions, generateAngularThemeSass, type ThemeMixinOptions, } from './angular.js';
export { BLAZOR_PLATFORM, BLAZOR_USAGE_EXAMPLES } from './blazor.js';
export { REACT_PLATFORM, REACT_USAGE_EXAMPLES } from './react.js';
export { generateWCHeader, generateWCImports, generateWCProgressProperties, generateWCRootVariables, generateWCRtlSupport, generateWCScrollbarCustomization, generateWCThemingMixins, generateWebComponentsThemeSass, getWCElevationPreset, WEBCOMPONENTS_PLATFORM, WEBCOMPONENTS_RUNTIME_CONFIG, WEBCOMPONENTS_USAGE_EXAMPLES, type WebComponentsThemeTemplate, } from './webcomponents.js';
/**
 * Detection signal from package analysis
 */
export interface PackageDetectionSignal {
    type: "ignite_package";
    package: string;
    confidence: number;
}
/**
 * Detection signal from config file analysis
 */
export interface ConfigFileDetectionSignal {
    type: "config_file";
    file: string;
    confidence: number;
}
/**
 * Detection signal from framework package (fallback)
 */
export interface FrameworkDetectionSignal {
    type: "framework_package";
    package: string;
    confidence: number;
}
/**
 * Union type for all detection signals
 */
export type DetectionSignal = PackageDetectionSignal | ConfigFileDetectionSignal | FrameworkDetectionSignal;
/**
 * Alternative platform detected during ambiguous detection
 */
export interface PlatformAlternative {
    platform: Platform;
    confidence: number;
    signals: DetectionSignal[];
}
/**
 * Platform detection result with enhanced ambiguity handling
 */
export interface PlatformDetectionResult {
    /** Detected platform (null if ambiguous or not detected) */
    platform: Platform | null;
    /** Overall confidence level */
    confidence: "high" | "medium" | "low" | "none";
    /** True when multiple platforms detected with similar confidence */
    ambiguous?: boolean;
    /** Alternative platforms when ambiguous */
    alternatives?: PlatformAlternative[];
    /** All detection signals found */
    signals: DetectionSignal[];
    /** Human-readable reason for the detection result */
    reason: string;
    /** Primary detected package (for backward compatibility) */
    detectedPackage?: string;
}
/**
 * Internal interface for config file detection results
 */
interface ConfigFileSignal {
    platform: Platform;
    file: string;
    confidence: number;
}
/**
 * Detect platform from config files in the project root.
 * Fast detection that only checks root directory, no deep scanning.
 *
 * @param projectRoot - Path to the project root directory
 * @returns Array of detected config file signals
 */
export declare function detectConfigFiles(projectRoot?: string): ConfigFileSignal[];
/**
 * Detect platform from package.json dependencies and project config files.
 *
 * Uses a multi-signal approach with confidence scoring:
 * 1. Ignite UI packages (HIGH - 100): Definitive platform match
 * 2. Config files (MEDIUM-HIGH - 80): Strong platform indicator
 * 3. Framework packages (LOW - 40): Fallback when no Ignite UI found
 *
 * When multiple platforms are detected with significant confidence (≥60),
 * returns an ambiguous result asking the user to specify explicitly.
 *
 * @param dependencies - package.json dependencies
 * @param devDependencies - package.json devDependencies
 * @param projectRoot - Project root directory for config file detection
 * @returns Platform detection result with signals and confidence
 */
export declare function detectPlatformFromDependencies(dependencies?: Record<string, string>, devDependencies?: Record<string, string>, projectRoot?: string): PlatformDetectionResult;
/**
 * Determine if a detected package is a licensed @infragistics package.
 * Only applies to Angular - other platforms always use the free igniteui-theming package.
 *
 * @param detectedPackage - The package name detected from package.json
 * @returns True if the package is a licensed @infragistics package
 */
export declare function isLicensedPackage(detectedPackage?: string): boolean;
/**
 * Platform metadata for display purposes
 */
export declare const PLATFORM_METADATA: {
    readonly angular: {
        readonly id: "angular";
        readonly name: "Ignite UI for Angular";
        readonly shortName: "Angular";
        readonly packageName: "igniteui-angular";
        readonly licensedPackageName: "@infragistics/igniteui-angular";
        readonly themingModule: "igniteui-angular/theming";
        readonly licensedThemingModule: "@infragistics/igniteui-angular/theming";
        readonly description: "Uses core() and theme() mixins from igniteui-angular/theming module. Requires ig-typography CSS class on root element. Available as OSS (igniteui-angular) or licensed (@infragistics/igniteui-angular) package.";
    };
    readonly webcomponents: {
        readonly id: "webcomponents";
        readonly name: "Ignite UI for Web Components";
        readonly shortName: "Web Components";
        readonly packageName: "igniteui-webcomponents";
        readonly themingModule: "igniteui-theming";
        readonly description: "Uses igniteui-theming directly with palette(), typography(), and elevations() mixins. Supports runtime theme switching via configureTheme(). The igniteui-theming package is always free/OSS.";
    };
    readonly react: {
        readonly id: "react";
        readonly name: "Ignite UI for React";
        readonly shortName: "React";
        readonly packageName: "igniteui-react";
        readonly themingModule: "igniteui-theming";
        readonly description: "Uses igniteui-theming directly with palette(), typography(), and elevations() mixins. Common with Vite or Next.js projects. The igniteui-theming package is always free/OSS.";
    };
    readonly blazor: {
        readonly id: "blazor";
        readonly name: "Ignite UI for Blazor";
        readonly shortName: "Blazor";
        readonly packageName: "IgniteUI.Blazor";
        readonly themingModule: "igniteui-theming";
        readonly description: "Uses igniteui-theming for Sass compilation in .NET Blazor projects. Theme styles are compiled to CSS and referenced in Blazor components. The igniteui-theming package is always free/OSS.";
    };
    readonly generic: {
        readonly id: "generic";
        readonly name: "Ignite UI Theming (Standalone)";
        readonly shortName: "Generic";
        readonly packageName: "igniteui-theming";
        readonly themingModule: "igniteui-theming";
        readonly description: "Platform-agnostic output using igniteui-theming directly. For projects that do not use a specific Ignite UI product framework (Angular, Web Components, React, or Blazor). Supports palette, typography, elevations, and theme generation. Component theming is not available in generic mode.";
    };
};
