/// <reference types="react" />
import type { PisellCardPickerItem, PisellCardPickerCardMeta, PisellCardPickerMode, FloorMapResourcePickerSlotProps, TabbarDataSource } from '@pisell/materials';
import type { OptionItem } from '../../pro/Selector/types';
export declare type PisellProResourcePickerMode = PisellCardPickerMode;
/** Selector 选项：附带原始 record / 卡片 meta，供 renderItem 使用 */
export interface ProResourcePickerOptionItem extends OptionItem {
    __record?: PisellCardPickerItem;
    __meta?: PisellCardPickerCardMeta;
}
export interface ProResourcePickerFilterBarContext {
    keyword: string;
    onKeywordChange: (keyword: string) => void;
    tabbarDataSource: TabbarDataSource[];
    tabbarValue: Array<string | number>;
    onTabbarValueChange: (value: Array<string | number>) => void;
}
/** object 模式下确认回调透出的「条目 + 数量」结构（如 View All 每种图元的数量） */
export interface ProResourcePickerObjectConfirmItem {
    value: string;
    quantity: number;
}
/**
 * Pro 版资源选择 Modal Props（与 `FloorMapResourcePickerSlotProps` 一致），
 * `onConfirm` 在 object 模式下回传 `{value, quantity}[]`，其余模式回传 id 列表。
 */
export interface PisellProResourcePickerModalProps extends Omit<FloorMapResourcePickerSlotProps, 'onConfirm'> {
    /**
     * 确认回调：
     * - `selectorValueType === 'object'`：回传 `{value, quantity}[]`（带数量步进器场景）。
     * - 其余情况（默认 'primitive'）：回传选中的 id 列表（单选会回传 0 或 1 项）。
     */
    onConfirm: ((items: ProResourcePickerObjectConfirmItem[]) => void) | ((ids: string[]) => void);
    /**
     * 顶部筛选区插槽：用于注入 `PisellTabbarTemplate1`（位于 materials，但在业务侧来自私有物料的组合）。
     * 未传时使用 `PisellFind`。
     */
    renderFilterBar?: (ctx: ProResourcePickerFilterBarContext) => React.ReactNode;
    /** Selector valueType；View all 需要 object 以启用数量选择器 */
    selectorValueType?: 'primitive' | 'object';
    /** Selector 是否显示数量选择器（默认 'auto'） */
    selectorShowStepper?: true | false | 'auto';
    /** 构建每个 option 的 ruleConfig（View all 用 max=99 触发数量选择） */
    getOptionRuleConfig?: (record: PisellCardPickerItem) => {
        min?: number;
        max?: number;
    } | undefined;
    /**
     * 容器平台：透传到 `CompensatedPisellContainer` 的 props.platform。
     * - 'pc'（默认）：居中 modal
     * - 'h5' / 'ipad'：走 PisellModal 对应端的样式（手机为底部抽屉式弹层）
     */
    platform?: 'pc' | 'h5' | 'ipad';
}
