import { Quantity } from './quantity';
import { Unit } from './unit';
import { Subscription, Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class QuantityMessage {
    quantity?: Quantity;
}
export declare class SystemOfUnits {
    quantities: Quantity[];
    private readonly quantityChange;
    readonly changes$: Observable<QuantityMessage>;
    add(...quantities: Quantity[]): void;
    get(quantityName: string): Quantity | undefined;
    selectUnit(quantity: Quantity, unit: string | Unit): void;
    /**
     * @depracted since 11.0.0. Use changes$ instead.
     */
    changes(): Observable<QuantityMessage>;
    /**
     * @depracted since 11.0.0. Use changes$ instead.
     */
    subscribe(quantity: Quantity, callback: (m: QuantityMessage) => unknown): Subscription;
    broadcast(quantity: Quantity): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SystemOfUnits, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SystemOfUnits>;
}
