import { ElementRef, OnInit, Renderer2 } from '@angular/core';
import { AbstractControl, ControlValueAccessor, FormControl, ValidationErrors, Validator } from '@angular/forms';
import { NgxSelectAngleService } from './ngx-select-angle.service';
import * as i0 from "@angular/core";
export declare class NgxSelectAngleComponent implements ControlValueAccessor, OnInit, Validator {
    private _selectAngleService;
    private _renderer;
    _size: number;
    _color: string;
    _strokeWidth: number;
    _pointerWidth: number;
    set size(s: number);
    set strokeWidth(s: number);
    set pointerWidth(s: number);
    set color(s: string);
    isDisabled: boolean;
    myControl: FormControl;
    position: {
        x: number;
        y: number;
    };
    dragging: boolean;
    tooltip: string;
    _onChange: (value: any) => void;
    _onTouched: () => void;
    _validatorOnChange: () => void;
    selectAngle: ElementRef<HTMLDivElement>;
    pointer: ElementRef<HTMLDivElement>;
    constructor(_selectAngleService: NgxSelectAngleService, _renderer: Renderer2);
    writeValue(value: any): void;
    validate(control: AbstractControl): ValidationErrors | null;
    registerOnValidatorChange?(fn: () => void): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(disabled: boolean): void;
    ngOnInit(): void;
    /**
     * End dragging
     * on document mouse up
     * @param ev mouse event | touch event
     */
    onMouseUp(ev: MouseEvent | TouchEvent): void;
    /**
     * End dragging
     * on document touch end
     * @param ev mouse event | touch event
     */
    onTouchEnd(ev: MouseEvent | TouchEvent): void;
    /**
     * Start dragging
     * on mouse or touch down
     * @param ev mouse event | touch event
     */
    onMouseDown(ev: MouseEvent | TouchEvent): void;
    /**
     * Move
     * on mouse or touch move
     * @param ev mouse event | touch event
     */
    onMouseMove(ev: MouseEvent | TouchEvent): void;
    /**
     * get angle and update view
     */
    updateAngle(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxSelectAngleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxSelectAngleComponent, "ngx-select-angle", never, { "size": "size"; "strokeWidth": "strokeWidth"; "pointerWidth": "pointerWidth"; "color": "color"; }, {}, never, never>;
}
