import type { FloorRoomCardBooking, FloorRoomCardData } from './floorRoomCardModel';
import { type FloorRoomCardPaymentUiKind } from './floorRoomCardPaymentUi';
import type { FloorRoomCardResolvedDensity } from './floorRoomCardDensity';
export declare type RoomCardStandardBodyType = 'not_arrived' | 'late' | 'payed' | 'payment_required' | 'timeout';
export declare function paymentBadgeClassName(kind: FloorRoomCardPaymentUiKind): string;
export declare type RoomCardBodyViewModel = {
    layout: 'compact' | 'full';
    checkoutDomKey: string;
    cardType: RoomCardStandardBodyType;
    contactName: string;
    contactPhoneMasked: string | null;
    showContactPhone: boolean;
    /** 每层整段不换行；层与层之间用模板中的 ` · ` 分隔并可换行 */
    guestContactSegments: string[];
    guestNameCompact: string;
    timeLabel: string;
    partySize: number;
    amountDisplay: string | number;
    orderNumberDisplay: string | null;
    amountPrefixLabel: string | null;
    countdown: string | null;
    reservedLateOverrun: string | null;
    occupiedTimeoutOverrun: string | null;
    paymentAmountClass: string;
    paymentBadgeClass: string;
    paymentBadgeText: string;
    paymentStampText: string;
    paymentIsPaid: boolean;
    showLargeAmountRow: boolean;
    showProgress: boolean;
    showPaymentStamp: boolean;
    /** 圆桌单条占用：为 true 时不展示底部圆印章，改在金额后放角标 */
    showInlinePaymentBadge: boolean;
    /** full 布局金额行是否带角标：仅圆桌单条占用 */
    showAmountInlineBadge: boolean;
    /** 多条 compact 占用行：展示金额/徽章/件数；预留行 false */
    showCompactCommerceRow: boolean;
    /** 印章两态：与 {@link FloorRoomCardPaymentUiKind} 一致 */
    paymentStampVariant: FloorRoomCardPaymentUiKind;
    itemsCountLabel: string;
    /** 多条 compact：件数放进中间滚动区（仅占用行） */
    itemsCountInsideScroll: boolean;
    /** 圆桌单条占用：外缘环形进度由壳层绘制，正文不再展示底部横条 */
    showEdgeProgressRing: boolean;
    /** 方桌单条占用：外缘矩形边框进度由壳层绘制，正文不再展示底部横条 */
    showEdgeProgressRectBorder: boolean;
    progressPercent: number;
    progressIsTimeout: boolean;
    nextGuestLine: string | null;
    /** Next 条联系人分层，与 {@link guestContactSegments} 同一换行规则 */
    nextGuestContactSegments: string[];
    nextTimeRange: string | null;
};
export declare function buildRoomCardBodyViewModel(params: {
    cardType: RoomCardStandardBodyType;
    booking: FloorRoomCardBooking;
    data: FloorRoomCardData;
    compact: boolean;
    /** 圆桌图元：占用 full 布局用行内角标替代印章 */
    shellShape?: 'rect' | 'circle';
    nowMs?: number;
    floorDensity?: FloorRoomCardResolvedDensity;
}): RoomCardBodyViewModel;
