/**
 * Generate platform-specific rule configuration
 * @param {string} subtype - The subtype name
 * @param {string} platform - Platform ('native_mobile' or 'web')
 * @returns {Object} Platform-specific rule configuration
 */
export function getPlatformRule(subtype: string, platform: string): any;
/**
 * Generate platform-specific validation rules from BASE_SUBTYPE_CONFIGS.
 * @param {string} platform - 'native_mobile' or 'web'
 * @param {Object} validators - Validator functions (see COMMON_VALIDATORS in utils.js)
 * @returns {Object} Rules indexed by subtype, each with a .validate function
 */
export function generatePlatformRules(platform: string, validators: any): any;
/**
 * Resolve an executable validator function from rule type + subtype.
 */
export function resolveRuleValidator(type: any, subtype: any, platform: any, validators: any): any;
export const BASE_SUBTYPE_CONFIGS: {
    "border-style": {
        type: string;
        native_mobile: {
            allowed: string[];
        };
        web: {
            allowed: string[];
        };
    };
    "border-width": {
        type: string;
        allowMultiValue: boolean;
        native_mobile: {
            allowedUnits: string[];
            allowUnitless: boolean;
            allowedKeywords: never[];
        };
        web: {
            allowedUnits: string[];
            allowUnitless: boolean;
            allowedKeywords: string[];
        };
    };
    "font-family": {
        type: string;
        customDescription: {
            native_mobile: string;
            web: string;
        };
        native_mobile: {
            allowMultipleFonts: boolean;
            separator: null;
            maxFonts: number;
            allowGenericFallbacks: boolean;
        };
        web: {
            allowMultipleFonts: boolean;
            separator: string;
            maxFonts: null;
            allowGenericFallbacks: boolean;
        };
    };
    "font-size": {
        type: string;
        native_mobile: {
            allowedUnits: string[];
            allowUnitless: boolean;
            allowedKeywords: never[];
        };
        web: {
            allowedUnits: string[];
            allowUnitless: boolean;
            allowedKeywords: string[];
        };
    };
    "font-weight": {
        type: string;
        range: number[];
        stepSize: number;
        native_mobile: {
            keywords: string[];
        };
        web: {
            keywords: string[];
        };
    };
    "icon-size": {
        type: string;
        native_mobile: {
            allowedUnits: string[];
            allowUnitless: boolean;
        };
        web: {
            allowedUnits: string[];
            allowUnitless: boolean;
        };
    };
    "letter-spacing": {
        type: string;
        native_mobile: {
            allowedUnits: string[];
            allowUnitless: boolean;
            allowNegative: boolean;
        };
        web: {
            allowedUnits: string[];
            allowUnitless: boolean;
            allowedKeywords: string[];
            allowNegative: boolean;
        };
    };
    "line-height": {
        type: string;
        customDescription: {
            native_mobile: string;
        };
        native_mobile: {
            allowedUnits: string[];
            allowUnitless: boolean;
        };
        web: {
            allowedUnits: string[];
            allowUnitless: boolean;
            allowedKeywords: string[];
        };
    };
    opacity: {
        type: string;
        min: number;
        max: number;
        percentMin: number;
        percentMax: number;
    };
    radius: {
        type: string;
        allowMultiValue: boolean;
        allowPercent: boolean;
        native_mobile: {
            allowedUnits: string[];
            allowUnitless: boolean;
        };
        web: {
            allowedUnits: string[];
            allowUnitless: boolean;
        };
    };
    space: {
        type: string;
        allowMultiValue: boolean;
        allowAuto: boolean;
        allowPercent: boolean;
        native_mobile: {
            allowedUnits: string[];
            allowUnitless: boolean;
        };
        web: {
            allowedUnits: string[];
            allowUnitless: boolean;
        };
    };
    margin: {
        type: string;
        allowMultiValue: boolean;
        allowAuto: boolean;
        allowNegative: boolean;
        native_mobile: {
            allowedUnits: string[];
            allowUnitless: boolean;
        };
        web: {
            allowedUnits: string[];
            allowUnitless: boolean;
        };
    };
    spacer: {
        type: string;
        native_mobile: {
            allowedUnits: string[];
            allowUnitless: boolean;
        };
        web: {
            allowedUnits: string[];
            allowUnitless: boolean;
        };
    };
};
