import { Unit } from './unit';
import { QuantityFormatter } from './formatters';
import { QuantityParser } from './parsers';
export interface QuantityDefinition {
    name: string;
    units: {
        [symbol: string]: number[];
    };
    formatter?: string;
    parser?: string;
}
export declare class Quantity {
    name: string;
    unit: Unit;
    units: Unit[];
    formatter: QuantityFormatter;
    parser: QuantityParser;
    constructor(definition?: QuantityDefinition);
    fromBase(value: string | number | undefined | null, unit?: Unit | string): number | null;
    toBase(value: string | number | null | undefined, unit?: Unit | string): number | null;
    private getUnit;
    selectUnit(unit?: string | Unit | null): void;
    findUnit(unit?: string | Unit | null): Unit | undefined;
    /**
     * Returns a string containing formatted number and unit symbol (optional).
     * @param value string or number
     */
    print(value: string | number | null | undefined, addUnitSymbol?: boolean, unit?: string | Unit): string;
}
export declare function defaultPrint(value: string | number | undefined | null): string;
