import { EventEmitter } from "../../stencil-public-runtime";
import { FormComponent } from "../../utils/form";
import { InteractiveComponent } from "../../utils/interactive";
import { LabelableComponent } from "../../utils/label";
import { LoadableComponent } from "../../utils/loadable";
import { LocalizedComponent } from "../../utils/locale";
import { T9nComponent } from "../../utils/t9n";
import { Scale } from "../interfaces";
import { RatingMessages } from "./assets/rating/t9n";
export declare class Rating implements LabelableComponent, FormComponent, InteractiveComponent, LoadableComponent, LocalizedComponent, T9nComponent {
  el: HTMLCalciteRatingElement;
  /** Specifies a cumulative average from previous ratings to display. */
  average: number;
  /** Specifies the number of previous ratings to display. */
  count: number;
  /** When `true`, interaction is prevented and the component is displayed with lower opacity. */
  disabled: boolean;
  /**
   * The ID of the form that will be associated with the component.
   *
   * When not set, the component will be associated with its ancestor form element, if any.
   */
  form: string;
  /**
   * Made into a prop for testing purposes only
   *
   * @internal
   */
  messages: RatingMessages;
  /**
   * Use this property to override individual strings used by the component.
   */
  messageOverrides: Partial<RatingMessages>;
  onMessagesChange(): void;
  /**
   * Specifies the name of the component.
   *
   * Required to pass the component's `value` on form submission.
   */
  name: string;
  /** When `true`, the component's value can be read, but cannot be modified. */
  readOnly: boolean;
  /**
   * When `true`, the component must have a value in order for the form to submit.
   *
   * @internal
   */
  required: boolean;
  /** Specifies the size of the component. */
  scale: Scale;
  /** When `true`, and if available, displays the `average` and/or `count` data summary in a `calcite-chip`. */
  showChip: boolean;
  /** The component's value. */
  value: number;
  handleValueUpdate(newValue: number): void;
  /**
   * Fires when the component's value changes.
   */
  calciteRatingChange: EventEmitter<void>;
  effectiveLocale: string;
  effectiveLocaleChange(): void;
  defaultMessages: RatingMessages;
  hoverValue: number;
  focusValue: number;
  hasFocus: boolean;
  connectedCallback(): void;
  componentWillLoad(): Promise<void>;
  componentWillRender(): void;
  componentDidLoad(): void;
  disconnectedCallback(): void;
  componentDidRender(): void;
  render(): any;
  onLabelClick(): void;
  private handleRatingPointerOver;
  private handleRatingPointerOut;
  private handleRatingFocusIn;
  private handleRatingFocusLeave;
  private handleHostKeyDown;
  private handleInputKeyDown;
  private handleInputChange;
  private handleLabelPointerOver;
  private handleLabelPointerDown;
  /** Sets focus on the component. */
  setFocus(): Promise<void>;
  labelEl: HTMLCalciteLabelElement;
  formEl: HTMLFormElement;
  defaultValue: Rating["value"];
  private emit;
  private guid;
  private inputRefs;
  private inputFocusRef;
  private isKeyboardInteraction;
  private max;
  private starsMap;
}
