import { PickerColumn, PickerWheelConfig } from './type';
import { KeysType } from '../common';
export interface PickerOptions {
    defaultIndex?: number;
    keys?: KeysType;
    defaultPickerColumns?: PickerColumn;
    el: HTMLElement | HTMLDivElement | HTMLUListElement;
    onChange: (index: number) => void;
    wheelConfig: Required<PickerWheelConfig>;
}
export declare const DEFAULT_ITEM_HEIGHT = 40;
declare class Picker {
    holder: HTMLElement | HTMLUListElement;
    options: PickerOptions;
    list: HTMLUListElement | null;
    elementItems: HTMLLIElement[];
    curIndex: number;
    itemClassName: string;
    itemSelectedClassName: string;
    itemHeight: number;
    lastMoveTime: number;
    lastMoveStart: number;
    stopInertiaMove: boolean;
    startY: number;
    isPicking: boolean;
    offsetYOfStartBound: number;
    offsetYOfEndBound: number;
    offsetY: number;
    offsetYOfStart: number;
    offsetYOfEnd: number;
    curValue: string | null;
    onChange: (index: number) => void;
    itemGroupHeight: number;
    indicatorOffset: number;
    pickerColumns: PickerColumn;
    inertiaDuration: number;
    bounceDuration: number;
    transitionDuration: number;
    inertiaTimeThreshold: number;
    inertiaDistanceThreshold: number;
    boundOffset: number;
    clickDistanceThreshold: number;
    clickTimeThreshold: number;
    private resizeObserver;
    private heightInitialized;
    constructor(options: PickerOptions);
    init(): void;
    observeResize(): void;
    private getFirstItemHeight;
    updateItems(): void;
    recalculateHeights(): void;
    initScrollParams(): void;
    bindEvent(): void;
    touchStartHandler(event: TouchEvent): void;
    getCount(): number;
    getRange(thresholdA?: number, thresholdB?: number): {
        min: number;
        max: number;
    };
    touchMoveHandler(event: TouchEvent): void;
    touchEndHandler(event: TouchEvent): void;
    updateInertiaParams(event: TouchEvent, isStart: boolean): void;
    scrollDist(startOffsetY: number, dist: number, duration: number): void;
    update(options?: any): void;
    updateIndex(index: number, options?: any): void;
    updateOptions(options?: PickerColumn): void;
    getCurIndex(): number;
    setSelectedClassName(): void;
    setOffsetY(offsetY: number): void;
    endScroll(): void;
    destroy(): void;
}
export default Picker;
