import { OnInit, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';
import { ElementRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { Quantity } from './quantity';
import { SystemOfUnits } from './system-of-units.service';
import { Unit } from './unit';
import * as i0 from "@angular/core";
export declare class QuantityDirective implements ControlValueAccessor, OnInit, OnChanges, OnDestroy {
    private elementRef;
    private system;
    quantityAttr?: string | Quantity;
    ngUnit?: string | Unit;
    quantity?: Quantity;
    private inputElement;
    private onTouch?;
    private onModelChange?;
    private currentModelValue?;
    private subscription?;
    constructor(elementRef: ElementRef, system: SystemOfUnits);
    ngOnInit(): void;
    private initQuantity;
    private subscribe;
    private updateUnit;
    private unsubscribe;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    registerOnTouched(fn: () => void): void;
    registerOnChange(fn: (value: string | number | undefined | null) => void): void;
    onControlInput(): void;
    writeValue(rawValue: string | number): void;
    private updateView;
    private getInputElement;
    static ɵfac: i0.ɵɵFactoryDeclaration<QuantityDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<QuantityDirective, "[ngQuantity]", never, { "quantityAttr": { "alias": "ngQuantity"; "required": false; }; "ngUnit": { "alias": "ngUnit"; "required": false; }; }, {}, never, never, false, never>;
}
