import { EventEmitter } from '../../stencil-public-runtime';
declare type EventListenerFunctionsMap = {
  [listener: string]: (event?: any) => void;
};
export declare type TeliaToggleChangeDetail = {
  originalEvent: Event;
  value: boolean;
};
export declare class TeliaToggle {
  /** Test id set for web component host */
  dataTestid: string;
  /** Set the toggle selected state */
  selected: boolean;
  /** When set, the toggle button is disabled and the change event won't be emitted */
  disabled: boolean;
  /** The label text */
  label: string;
  /** The position of the label. When set to neither after nor before, the label will be hidden but still set as aria-label for the button element */
  labelPosition: 'before' | 'after' | 'none';
  /** Id of element that should label the toggle */
  labelledby: string;
  /** Tracking id is used to identify and count Component usage */
  private dataTrackingId;
  /**
   * The change event is emited when the toggle has been toggled successfully.
   * This event is not fired when the toggle is disabled
   */
  vocaChange: EventEmitter<TeliaToggleChangeDetail>;
  dragged: boolean;
  dragging: boolean;
  dragStartX: number;
  dragX: number;
  internalSelected: boolean;
  remSize: number;
  trackHeight: number;
  thumbMaxDragRange: number;
  thumbPressedLineHeight: number;
  thumbLineWidth: number;
  eventListeners: EventListenerFunctionsMap;
  setInternalSelected(newValue: any): void;
  componentWillLoad(): void;
  private emitChange;
  private addEventListeners;
  private removeEventListeners;
  private initDrag;
  private endDrag;
  private endDragEmitChange;
  private onDrag;
  private getClientX;
  private toggleOnEnter;
  private onLabelClick;
  private stopPrevent;
  private getThumbOffset;
  private isDraggedHalfway;
  private getValueByState;
  private calculateThumbPadding;
  private getThumbStyle;
  private getThumbClass;
  private getTrackClass;
  private renderLabel;
  render(): any;
}
export {};
