import type React from 'react';
import type { PopupPropsCommon } from '../popup/interface';
export declare type SelectorValue = number | string;
export declare type SelectorOption = {
    /**
     * 显示的文案
     */
    label: string;
    /**
     * 唯一标识
     */
    value: SelectorValue;
    /**
     * 是否禁用
     * @default false
     */
    disabled?: boolean;
};
export interface SelectorProps extends Omit<PopupPropsCommon, 'closeOnPressOverlay' | 'onPressOverlay'> {
    /**
     * 点击遮罩层关闭
     * @default true
     */
    closeOnPressOverlay?: boolean;
    /**
     * 标题
     * @default '请选择'
     */
    title?: React.ReactNode;
    /**
     * 是否显示关闭图标
     * @default true
     */
    showClose?: boolean;
    /**
     * 是否多选
     * @default false
     */
    multiple?: boolean;
    /**
     * 当前选中的值
     */
    value?: SelectorValue[] | SelectorValue;
    /**
     * 当前的选项
     */
    options: SelectorOption[];
    /**
     * 选择后的回调
     */
    onChange?: (value: SelectorValue[] | SelectorValue, options: SelectorOption[]) => void;
    /**
     * 当值变化的时候立即响应
     */
    onChangeImmediate?: (v: SelectorValue[] | SelectorValue) => SelectorValue[] | SelectorValue;
    /**
     * 顶部安全高度
     * @default safeAreaInsets.top
     */
    safeAreaInsetTop?: number;
    /**
     * 确定按钮文案
     * @default '确定'
     */
    confirmButtonText?: string;
}
export interface SelectorMethodProps extends Omit<SelectorProps, 'visible'> {
}
export interface SelectorOptions extends Omit<SelectorMethodProps, 'onChange' | 'onRequestClose'> {
    onChange?: (value: SelectorValue[] | SelectorValue, options: SelectorOption | SelectorOption[]) => void;
}
export interface SelectorTextProps {
    /**
     * 标题
     * @default '请选择'
     */
    title?: React.ReactNode;
    /**
     * 当前选中的值
     */
    value: SelectorValue;
    /**
     * 当前的选项
     */
    options: SelectorOption[];
    /**
     * 选择后的回调
     */
    onChange?: (value: SelectorValue, options: SelectorOption) => void;
    /**
     * 箭头方向
     * @default 'right'
     */
    arrowDirection?: 'left' | 'up' | 'right' | 'down';
    /**
     * 显示分割线
     * @default true
     */
    divider?: boolean;
    /**
     * 左侧是否有间距
     * @default true
     */
    head?: boolean;
}
export declare type SelectorFnInstance = (p: SelectorOptions) => Promise<SelectorValue[] | SelectorValue>;
export interface SelectorInstance extends SelectorFnInstance {
    Component: React.FC<SelectorProps>;
    Text: React.FC<SelectorTextProps>;
}
