import type { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
import type { Color } from '../../interface';
import type { PickerColumnItem } from './gasco-picker-column-internal-interfaces';
export declare class GascoPickerColumnInternal implements ComponentInterface {
  private destroyScrollListener?;
  private isScrolling;
  private scrollEndCallback?;
  private isColumnVisible;
  isActive: boolean;
  el: HTMLGascoPickerColumnInternalElement;
  /**
   * A list of options to be displayed in the picker
   */
  items: PickerColumnItem[];
  /**
   * The selected option in the picker.
   */
  value?: string | number;
  /**
   * The color to use from your application's color palette.
   * Default options are: `"primary"`, `"secondary"`, `"success"`, `"warning"` and `"danger"`.
   */
  color?: Color;
  /**
   * If `true`, tapping the picker will
   * reveal a number input keyboard that lets
   * the user type in values for each picker
   * column. This is useful when working
   * with time pickers.
   *
   * @internal
   */
  numericInput: boolean;
  /**
   * Emitted when the value has changed.
   */
  gascoChange: EventEmitter<PickerColumnItem>;
  valueChange(): void;
  /**
   * Only setup scroll listeners
   * when the picker is visible, otherwise
   * the container will have a scroll
   * height of 0px.
   */
  componentWillLoad(): void;
  componentDidRender(): void;
  /** @internal  */
  scrollActiveItemIntoView(): Promise<void>;
  private setValue;
  private centerPickerItemInView;
  /**
   * When gascoInputModeChange is emitted, each column
   * needs to check if it is the one being made available
   * for text entry.
   */
  private inputModeChange;
  /**
   * Setting isActive will cause a re-render.
   * As a result, we do not want to cause the
   * re-render mid scroll as this will cause
   * the picker column to jump back to
   * whatever value was selected at the
   * start of the scroll interaction.
   */
  private setInputModeActive;
  /**
   * When the column scrolls, the component
   * needs to determine which item is centered
   * in the view and will emit an gascoChange with
   * the item object.
   */
  private initializeScrollListener;
  get activeItem(): HTMLElement;
  render(): any;
}
