import { CardPolicyChipFieldValue } from './cardPolicyFormTypes'; /** * Centralized chip-id derivation so that seeds, search-dropdown rows, * saved-template recoveries, and the dedupe logic in * `AllowBlockChipPicker.handleAddItem` all key off the **same** id for * the same logical entity. * * The dedupe path `existing.id === option.id` is content-blind: if the * id strings don't match, the picker treats the option as a brand-new * chip and appends a duplicate. So every producer of chip values for * the card-policy flow MUST funnel through these helpers. * * - Vendors: `vendor-${name.trim().toLowerCase()}`. Two vendors that * share an identical display name (case- and whitespace-insensitive) * intentionally collapse into one chip — acceptable per the * "name-key-only" strategy locked into the plan. * - MCC categories: `mcc-${name}`. Matches the legacy * `toCategoryChipOption` convention so `buildCardPolicyFormValuesFromRequest` * keeps recovering chips by id. */ export declare const VENDOR_CHIP_ID_PREFIX = "vendor-"; export declare const MCC_CHIP_ID_PREFIX = "mcc-"; export declare const buildVendorChipId: (name: string) => string; export declare const buildMccCategoryChipId: (name: string) => string; export declare const toVendorChipFieldValue: (name: string, isSelected: boolean) => CardPolicyChipFieldValue; export interface MccCategoryLike { mccCodes: string[]; name: string; } export declare const toMccCategoryChipFieldValue: (category: MccCategoryLike, isSelected: boolean) => CardPolicyChipFieldValue;