import { TNode, KeysType } from '../common';
export interface TdPickerProps {
    cancelBtn?: boolean | string;
    columns: PickerColumn | Array<PickerColumn> | ((item: Array<PickerValue>) => Array<PickerColumn>);
    confirmBtn?: boolean | string;
    footer?: TNode;
    header?: TNode;
    keys?: KeysType;
    option?: (option: PickerColumnItem, index: number) => string | Record<string, string | boolean>;
    renderLabel?: (item: PickerColumnItem, index: number) => string;
    swipeDuration?: string | number;
    title?: string;
    value?: Array<PickerValue>;
    defaultValue?: Array<PickerValue>;
    modelValue?: Array<PickerValue>;
    wheelConfig?: PickerWheelConfig;
    onCancel?: (context: {
        e: MouseEvent;
    }) => void;
    onChange?: (value: Array<PickerValue>, context: {
        columns: Array<PickerContext>;
        e: MouseEvent;
    }) => void;
    onConfirm?: (value: Array<PickerValue>, context: {
        index: number[];
        e: MouseEvent;
        label: string[];
    }) => void;
    onPick?: (value: Array<PickerValue>, context: PickerContext) => void;
}
export type PickerColumn = PickerColumnItem[];
export interface PickerColumnItem {
    label: string;
    value: string;
    disabled?: boolean;
}
export type PickerValue = string | number;
export interface PickerWheelConfig {
    inertiaDuration?: number;
    bounceDuration?: number;
    transitionDuration?: number;
    inertiaTimeThreshold?: number;
    inertiaDistanceThreshold?: number;
    boundOffset?: number;
    clickDistanceThreshold?: number;
    clickTimeThreshold?: number;
}
export interface PickerContext {
    column: number;
    index: number;
}
