import type { IDesignItem } from '../../../item/IDesignItem.js';
import type { IProperty } from '../IProperty.js';
export type UnitPropertyType = 'css-length' | 'css-angle' | 'css-time' | 'css-frequency' | 'css-flex' | 'css-resolution' | 'css-scale' | 'svg-length';
export type UnitConversionResult = string | number | null | undefined;
export type UnitConversionContext = {
    property: IProperty;
    numericType: UnitPropertyType;
    designItems?: IDesignItem[];
    value: number;
    numberText: string;
    rawValue: string;
    fromUnit: string;
    toUnit: string;
};
export type UnitEditorConfig = {
    numericType: UnitPropertyType;
    units: string[];
    fixedValues: string[];
    unitSteps: Record<string, number>;
    convertValue: (context: Omit<UnitConversionContext, 'property' | 'numericType'>) => string;
};
export declare const defaultCssNumericUnits: Record<UnitPropertyType, string[]>;
export declare const defaultCssNumericUnitSteps: Record<UnitPropertyType, Record<string, number>>;
export declare function defaultConvertCssNumericUnitValue(context: UnitConversionContext): string;
export declare function getUnitPropertyType(type?: string, propertyName?: string): UnitPropertyType | null;
export declare function isUnitPropertyType(type?: string, propertyName?: string): boolean;
export declare function convertNumericUnitValue(context: UnitConversionContext): string;
export declare function getCssNumericKeywordValues(values?: string[]): string[];
export declare function applyCssNumericPropertyDefaults(property: IProperty): IProperty;
export declare function getCssNumericEditorConfig(property: IProperty): UnitEditorConfig | null;
