import React from 'react';
import type { GlobalSearchItemContext } from '../types';
import type { SalesSearchItem } from '../api/searchService';
import { type DetailRefreshVersions } from '../utils/detailRefresh';
/**
 * 订单结果区共享视图（salesProvider 使用）。
 *
 * - 管理模式（admin）：OrderAdminGrid → ES 数据驱动的订单表格（滚动加载 + 列筛选/排序）；
 * - 业务模式（business / 精确搜索）：OrderBusinessDetails → 命中订单逐条内联展示 SaleDetail。
 */
interface OrderTableFallbackBoundaryProps {
    children: React.ReactNode;
}
interface OrderTableFallbackBoundaryState {
    hasError: boolean;
}
/**
 * 兜底：PisellSalesGrid / SaleDetail 依赖 admin engine context（pisell1.* action /
 * request / OS 模块），脱离 admin lowcode 环境单独运行会崩。
 * 用 ErrorBoundary 包一层，崩了显示提示而不是整个搜索面板炸掉。
 */
export declare class OrderTableFallbackBoundary extends React.Component<OrderTableFallbackBoundaryProps, OrderTableFallbackBoundaryState> {
    constructor(props: OrderTableFallbackBoundaryProps);
    static getDerivedStateFromError(): OrderTableFallbackBoundaryState;
    componentDidCatch(error: Error): void;
    render(): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
}
/**
 * 业务模式（精确搜索）内容区：把命中的订单详情逐条排下去展示。
 *
 * - loading 且暂无结果 → Spin；
 * - 搜了但 0 条 → 空态；
 * - 多条 → 每条用 SaleDetail（renderType='current'）内联展示，竖向排列；
 * - 每条用独立 osKey（按订单 id 区分）隔离 SDK 实例，避免相互覆盖；
 * - 每条用 ErrorBoundary 兜底（脱离 admin engine 环境时优雅降级）。
 */
export declare const OrderBusinessDetails: React.FC<{
    orderIds: Array<string | number>;
    loading: boolean;
    keyword: string;
    detailRefreshVersions?: DetailRefreshVersions;
}>;
/**
 * 从 OS Server 搜索 delta 回调中提取变更订单列表。
 *
 * @example
 * const deltaItems = normalizeSalesDeltaItems({ data: { list: [{ order_id: 1 }] } });
 */
export declare function normalizeSalesDeltaItems(res: any): SalesSearchItem[];
/**
 * 只替换已加载列表中存在的订单，不插入新的订单。
 *
 * @example
 * const nextItems = patchLoadedSalesItems(items, [{ order_id: 1, status: 'paid' }]);
 */
export declare function patchLoadedSalesItems(currentItems: SalesSearchItem[], deltaItems: SalesSearchItem[]): SalesSearchItem[];
export declare const OrderBusinessList: React.NamedExoticComponent<{
    keyword: string;
}>;
/**
 * 管理模式订单表格（对外）。用 React.memo 包裹：
 * 壳层输入框受控 → 每次敲键壳层重渲染并内联调用 renderResults，
 * memo 在 committed keyword / onOpenDetail 未变时跳过整块重渲染。
 */
export declare const OrderAdminGrid: React.NamedExoticComponent<{
    /** 全局搜索关键词（统一搜索框驱动） */
    keyword: string;
    onOpenDetail?: GlobalSearchItemContext['onOpenDetail'];
    onRealtimePatchItems?: GlobalSearchItemContext['onRealtimePatchItems'];
    /**
     * 预览条数上限。传入时（如「全部」分组里：恒为 5）只取首页这么多条、
     * 并关闭无限滚动/翻页；不传则为完整表格（单 Orders tab，PAGE_SIZE=20 + 触底翻页）。
     */
    previewLimit?: number | undefined;
}>;
export {};
