///
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;
onTabbarValueChange: (value: Array) => 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 {
/**
* 确认回调:
* - `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';
}