import { InputSignalWithTransform } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { TemplateIdDirective } from '../shared';
import { RatingItemLabelComponent } from './rating-item-label/rating-item-label.component';
import * as i0 from "@angular/core";
export declare const coerceStringArray: (value: string | string[]) => string[];
export declare const coerceRatingPrecision: (value: number | string) => number;
export declare const coerceNumber: (value: number | string | null) => number;
export declare class RatingComponent implements ControlValueAccessor {
    #private;
    /**
     * The default icon to display when the item is selected.
     * @type: string | string[]
     */
    readonly activeIcon: InputSignalWithTransform<string[], string | string[]>;
    /**
     * Enables the clearing upon clicking the selected item again.
     * @type: boolean
     * @default: false
     */
    readonly allowClear: InputSignalWithTransform<boolean, unknown>;
    /**
     * Toggle the disabled state for the component.
     * @type: boolean
     * @default: false
     */
    readonly disabled: InputSignalWithTransform<boolean, unknown>;
    /**
     * If enabled, only the currently selected icon will be visibly highlighted.
     * @type: boolean
     * @default: false
     */
    readonly highlightOnlySelected: InputSignalWithTransform<boolean, unknown>;
    /**
     * The default icon to display when the item is not selected.
     * @type: string | string[]
     */
    readonly icon: InputSignalWithTransform<string[], string | string[]>;
    /**
     * Specifies the total number of stars to be displayed in the star rating component. This property determines the scale of the rating,
     * such as out of 5 stars, 10 stars, etc.
     * @type: number
     * @default: 5
     */
    readonly itemCount: InputSignalWithTransform<number, unknown>;
    /**
     * Minimum increment value change allowed.
     * @type: number
     * @default: 1
     */
    readonly precision: InputSignalWithTransform<number, unknown>;
    /**
     * Allows to click fractions
     * @type: boolean
     * @default: false
     */
    /**
     * Toggle the readonly state for the component.
     * @type: boolean
     * @default: false
     */
    readonly readOnly: InputSignalWithTransform<boolean, unknown>;
    /**
     * Size the component small, large, or custom if you define custom icons with custom height.
     * @type: 'sm' | 'lg' | 'custom' | undefined
     * @default: undefined
     */
    readonly size: import("@angular/core").InputSignal<"sm" | "lg" | "custom" | undefined>;
    /**
     * Enable tooltips with default values or set specific labels for each icon.
     * @type: boolean | string[] | undefined
     * @default: undefined
     */
    readonly tooltips: import("@angular/core").InputSignal<boolean | string[] | undefined>;
    /**
     * The `value` attribute of component.
     * @type: number | null
     * @default: null
     * Emits `valueChange` on value change
     */
    readonly value: import("@angular/core").ModelSignal<number | null>;
    /**
     * Event emitted on hoverValue change.
     * @type: number | null
     */
    readonly hoverValue: import("@angular/core").WritableSignal<number | null>;
    readonly hoverValueChange: import("@angular/core").OutputEmitterRef<number | null>;
    readonly hoverValueEffect: import("@angular/core").EffectRef;
    readonly hoveredItem: import("@angular/core").WritableSignal<number | undefined>;
    readonly tooltipValue: import("@angular/core").WritableSignal<string | number | null>;
    readonly ratingDisabled: import("@angular/core").Signal<boolean>;
    readonly ratingDisabledEffect: import("@angular/core").EffectRef;
    readonly contentTemplates: import("@angular/core").Signal<readonly TemplateIdDirective[]>;
    readonly iconTemplates: import("@angular/core").Signal<any>;
    readonly numberOfSubItems: import("@angular/core").Signal<number>;
    readonly ratingItems: import("@angular/core").Signal<number[][]>;
    readonly ratingItemLabels: import("@angular/core").Signal<readonly RatingItemLabelComponent[]>;
    readonly ratingItemLabelsEffect: import("@angular/core").EffectRef;
    get hostClasses(): {
        [x: string]: boolean | "sm" | "lg" | "custom" | undefined;
        rating: boolean;
        disabled: boolean;
        readonly: boolean;
    };
    get ariaValueNow(): number | null;
    get ariaValueMax(): number;
    get role(): string;
    onKeydown($event: any): false | undefined;
    onChange: (value: number | null) => void;
    onTouched: () => void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    writeValue(value: number | null): void;
    isItemActive(value: number): boolean;
    notLastItemStyle(value: number): {
        zIndex: number;
        position: string;
        width: string;
        overflow: string;
        opacity: number;
    };
    handleFocusIn($event: FocusEvent, itemValue: number): void;
    handleClick(value: number): void;
    handleMouseEnter($event: MouseEvent, value: number): void;
    getTooltipValue(index: number): string | undefined;
    updateFocusableItems(): void;
    readonly valueEffect: import("@angular/core").EffectRef;
    static ɵfac: i0.ɵɵFactoryDeclaration<RatingComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RatingComponent, "c-rating", ["cRating"], { "activeIcon": { "alias": "activeIcon"; "required": false; "isSignal": true; }; "allowClear": { "alias": "allowClear"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "highlightOnlySelected": { "alias": "highlightOnlySelected"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "itemCount": { "alias": "itemCount"; "required": false; "isSignal": true; }; "precision": { "alias": "precision"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tooltips": { "alias": "tooltips"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "hoverValueChange": "hoverValueChange"; }, ["contentTemplates"], never, true, never>;
}
