import { DesignSystem, ElevationPreset, Platform, ThemeVariant } from '../utils/types.js';
/**
 * Import paths for the theming library by platform.
 */
export declare const IMPORT_PATHS: {
    /** Ignite UI for Angular theming module (forwards igniteui-theming with overrides) */
    readonly angular: "igniteui-angular/theming";
    /** Direct igniteui-theming module for Web Components */
    readonly webcomponents: "igniteui-theming";
    /** Direct igniteui-theming module for React */
    readonly react: "igniteui-theming";
    /** Direct igniteui-theming module for Blazor */
    readonly blazor: "igniteui-theming";
    /** Generic / platform-agnostic code */
    readonly generic: "igniteui-theming";
};
/**
 * Get the appropriate import path for a platform.
 */
export declare function getImportPath(platform?: Platform): string;
/**
 * Parameters for the palette() Sass function.
 */
export interface PaletteFunctionParams {
    /** Primary brand color (required) */
    primary: string;
    /** Secondary/accent color (required) */
    secondary: string;
    /** Surface/background color (required) */
    surface: string;
    /** Gray base color (optional - auto-generated from surface if not provided) */
    gray?: string;
    /** Info state color (optional) */
    info?: string;
    /** Success state color (optional) */
    success?: string;
    /** Warning state color (optional) */
    warn?: string;
    /** Error state color (optional) */
    error?: string;
}
/**
 * Metadata about the palette() function.
 */
export declare const PALETTE_FUNCTION: {
    readonly name: "palette";
    /** Required parameters (must always be provided) */
    readonly requiredParams: readonly ["primary", "secondary", "surface"];
    /** Optional parameters */
    readonly optionalParams: readonly ["gray", "info", "success", "warn", "error"];
    /** Default variable name pattern */
    readonly defaultVariablePattern: "$custom-{variant}-palette";
    /** Description for documentation */
    readonly description: "Creates a color palette map from base colors. Automatically generates shade variants (50-900, A100-A700) for each color using internal algorithms.";
};
/**
 * Parameters for the shades() Sass function.
 * Used for generating shade variants from a single base color.
 */
export interface ShadesFunctionParams {
    /** Color group name (e.g., 'primary', 'secondary') */
    colorName: string;
    /** Base color to generate shades from */
    baseColor: string;
    /** List of shade levels to generate */
    shadeLevels: readonly string[];
    /** Surface color (required for gray shades to calculate proper contrast) */
    surface?: string;
}
/**
 * Metadata about the shades() function.
 */
export declare const SHADES_FUNCTION: {
    readonly name: "shades";
    /** Description for documentation */
    readonly description: "Generates a shade map from a base color. Creates contrast-accessible shade variants automatically.";
    /** Chromatic shade levels (for primary, secondary, etc.) */
    readonly chromaticShadeLevels: readonly ["50", "100", "200", "300", "400", "500", "600", "700", "800", "900", "A100", "A200", "A400", "A700"];
    /** Gray shade levels (no accent shades) */
    readonly grayShadeLevels: readonly ["50", "100", "200", "300", "400", "500", "600", "700", "800", "900"];
};
/**
 * Parameters for the typography() mixin.
 */
export interface TypographyMixinParams {
    /** Font family string (e.g., "'Inter', sans-serif") */
    fontFamily: string;
    /** Type scale variable reference (e.g., '$material-type-scale') */
    typeScale: string;
}
/**
 * Metadata about the typography() mixin.
 */
export declare const TYPOGRAPHY_MIXIN: {
    readonly name: "typography";
    /** Parameter names in order */
    readonly params: readonly ["$font-family", "$type-scale"];
    /** Description for documentation */
    readonly description: "Applies typography CSS custom properties for font sizes, weights, line heights, and letter spacing.";
    /** CSS class required on root element (Angular only) */
    readonly angularRootClass: "ig-typography";
};
/**
 * Parameters for the elevations() mixin.
 */
export interface ElevationsMixinParams {
    /** Elevations variable reference (e.g., '$material-elevations') */
    elevations: string;
}
/**
 * Metadata about the elevations() mixin.
 */
export declare const ELEVATIONS_MIXIN: {
    readonly name: "elevations";
    /** Parameter names */
    readonly params: readonly ["$elevations"];
    /** Number of elevation levels (0-24) */
    readonly levelCount: 25;
    /** Description for documentation */
    readonly description: "Applies elevation CSS custom properties for box-shadow values at 25 levels (0-24).";
};
/**
 * Parameters for the palette() mixin (applies palette to CSS variables).
 */
export interface PaletteMixinParams {
    /** Palette variable reference (e.g., '$my-palette') */
    palette: string;
}
/**
 * Metadata about the palette() mixin.
 */
export declare const PALETTE_MIXIN: {
    readonly name: "palette";
    /** Description for documentation */
    readonly description: "Applies a palette map as CSS custom properties (--ig-* variables).";
};
/**
 * Metadata about the spacing() mixin.
 */
export declare const SPACING_MIXIN: {
    readonly name: "spacing";
    /** Platforms that support this mixin */
    readonly supportedPlatforms: readonly ["webcomponents", "react", "blazor"];
    /** Description for documentation */
    readonly description: "Applies spacing CSS custom properties for consistent margins and paddings.";
};
/**
 * Parameters for the core() mixin (Angular only).
 */
export interface CoreMixinParams {
    /** Include/exclude styles for printing */
    printLayout?: boolean;
    /** Enable enhanced accessibility colors */
    enhancedAccessibility?: boolean;
}
/**
 * Metadata about the core() mixin.
 */
export declare const CORE_MIXIN: {
    readonly name: "core";
    /** Platforms that support this mixin */
    readonly supportedPlatforms: readonly ["angular"];
    /** Description for documentation */
    readonly description: "Provides base definitions for theming. Must be included before theme() mixin.";
    /** Optional parameters with defaults */
    readonly optionalParams: {
        readonly "$print-layout": true;
        readonly "$enhanced-accessibility": false;
    };
};
/**
 * Parameters for the theme() mixin (Angular only).
 */
export interface ThemeMixinParams {
    /** Palette map to use */
    palette: string;
    /** Schema to use for component styling */
    schema: string;
    /** Global roundness factor (0 to 1) */
    roundness?: number;
    /** Enable/disable elevations */
    elevation?: boolean;
    /** Custom elevations map */
    elevations?: string;
    /** Components to exclude from theming */
    exclude?: string[];
}
/**
 * Metadata about the theme() mixin.
 */
export declare const THEME_MIXIN: {
    readonly name: "theme";
    /** Platforms that support this mixin */
    readonly supportedPlatforms: readonly ["angular"];
    /** Required parameters */
    readonly requiredParams: readonly ["$palette", "$schema"];
    /** Optional parameters */
    readonly optionalParams: readonly ["$roundness", "$elevation", "$elevations", "$exclude"];
    /** Description for documentation */
    readonly description: "Generates styles for all components using the specified palette and schema.";
};
/**
 * CSS custom property naming patterns used by the theming library.
 */
export declare const CSS_VARIABLE_PATTERNS: {
    /** Theme identifier */
    readonly theme: "--ig-theme";
    /** Theme variant (light/dark) */
    readonly themeVariant: "--ig-theme-variant";
    /** Component size levels */
    readonly sizes: {
        readonly base: "--ig-size";
        readonly small: "--ig-size-small";
        readonly medium: "--ig-size-medium";
        readonly large: "--ig-size-large";
    };
    /** Spacing controls */
    readonly spacing: {
        readonly base: "--ig-spacing";
        readonly inline: "--ig-spacing-inline";
        readonly block: "--ig-spacing-block";
    };
    /** Roundness scaling */
    readonly roundness: "--ig-radius-factor";
    /** Scrollbar customization */
    readonly scrollbar: {
        readonly size: "--ig-scrollbar-size";
        readonly thumbBackground: "--ig-scrollbar-thumb-background";
        readonly trackBackground: "--ig-scrollbar-track-background";
    };
    /** RTL direction multiplier */
    readonly direction: "--ig-dir";
    /** Color function pattern: --ig-{color}-{shade} */
    readonly colorPattern: "--ig-{color}-{shade}";
    /** Elevation pattern: --ig-elevation-{level} */
    readonly elevationPattern: "--ig-elevation-{level}";
    /** Typography patterns */
    readonly typography: {
        readonly fontFamily: "--ig-font-family";
        readonly fontSize: "--ig-font-size-{category}";
        readonly fontWeight: "--ig-font-weight-{category}";
        readonly lineHeight: "--ig-line-height-{category}";
        readonly letterSpacing: "--ig-letter-spacing-{category}";
    };
};
/**
 * Variable naming patterns for the theming library.
 */
export declare const VARIABLE_PATTERNS: {
    /** Palette variable: ${variant}-${designSystem}-palette */
    readonly palettePreset: (variant: ThemeVariant, designSystem: DesignSystem) => string;
    /** Schema variable: ${variant}-${designSystem}-schema */
    readonly schema: (variant: ThemeVariant, designSystem: DesignSystem) => string;
    /** Typeface variable: ${designSystem}-typeface */
    readonly typeface: (designSystem: DesignSystem) => string;
    /** Type scale variable: ${designSystem}-type-scale */
    readonly typeScale: (designSystem: DesignSystem) => string;
    /** Elevations variable: ${preset}-elevations */
    readonly elevations: (preset: ElevationPreset) => string;
    /** Custom palette variable */
    readonly customPalette: (name: string, variant: ThemeVariant) => string;
};
/**
 * Get the appropriate elevations variable for a design system.
 */
export declare function getElevationsVariable(designSystem: DesignSystem): string;
/**
 * Check if a mixin is supported on a given platform.
 */
export declare function isMixinSupported(mixin: "core" | "theme" | "spacing", platform?: Platform): boolean;
/**
 * Get all color groups that should be in a palette.
 * Returns the canonical list from types.ts.
 */
export declare function getPaletteColorGroups(): readonly string[];
