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;
