import { EventEmitter, ChangeDetectorRef, OnInit, AfterViewInit, ElementRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
export declare class RatingComponent implements OnInit, ControlValueAccessor, AfterViewInit {
    private _cd;
    private _el;
    /**
     * event emitted when rating change
     */
    change: EventEmitter<number>;
    /**
     * total stars
     * @default 5
     */
    total: number;
    /**
     * current star rating
     */
    value: number;
    /**
     * whether to support half star, not yet supported
     * @default false
     */
    halfStar: boolean;
    /**
     * whether the rating is read-only, when in read-only mode, the stars loss interactivity
     * @default false
     */
    readonly: boolean;
    /**
     * whether show tip when hover the stars
     * @default false
     */
    showTip: boolean;
    /**
     * whether the rating is disabled
     * @default false
     */
    disabled: boolean;
    /**
     * custom theme
     */
    theme: string;
    /**
     * when `showTip` is set, you can use this to set tooltip message, you can use a string template
     *  or you can use you own custom tooltip function
     */
    tipTemplate: string | Function;
    _starArray: number[];
    _tempValue: number | null;
    constructor(_cd: ChangeDetectorRef, _el: ElementRef);
    /**
     * get tooltip message
     *
     * @param {number} i - star number
     * @return {string}
     * @docs-private
     */
    getTip(i: number): any;
    /**
     * whether allow tooltip
     *
     * @return {boolean}
     * @docs-private
     */
    allowShowTip(): boolean;
    ngOnInit(): void;
    _genArray(limit: number): number[];
    /**
     * star mouse over event
     *
     * @param {number} v - star number
     * @docs-private
     */
    onMouseOver(v: number): void;
    /**
     * mouse leave event
     * @docs-private
     */
    onMouseLeave(): void;
    /**
     * rating event
     *
     * @param {number} v - current rating
     * @docs-private
     */
    onClick(v: number): void;
    /**
     * The method to be called in order to update ngModel.
     * Now `ngModel` binding is not supported in multiple selection mode.
     */
    private _onModelChange;
    /**
     * Registers a callback that will be triggered when the value has changed.
     * Implemented as part of ControlValueAccessor.
     * @param fn On change callback function.
     */
    registerOnChange(fn: Function): void;
    /** onTouch function registered via registerOnTouch (ControlValueAccessor). */
    private _onTouch;
    /**
     * Registers a callback that will be triggered when the control has been touched.
     * Implemented as part of ControlValueAccessor.
     * @param fn On touch callback function.
     */
    registerOnTouched(fn: Function): void;
    /**
     * Sets the model value. Implemented as part of ControlValueAccessor.
     * @param value Value to be set to the model.
     */
    writeValue(value: any): void;
    /**
     * Toggles the disabled state of the component. Implemented as part of ControlValueAccessor.
     * @param isDisabled Whether the component should be disabled.
     */
    setDisabledState(isDisabled: boolean): void;
    /**
     * update form model value and mark for check
     */
    _updateFormModel(): void;
    ngAfterViewInit(): void;
}
