import { IconType } from '../components/rioglyph/Rioglyph';
export type FuelType = 'unknown' | 'gas' | 'diesel' | 'kerosene' | 'heavy_fuel_oil' | 'methanol' | 'ethanol' | 'lpg' | 'cng' | 'propane' | 'ng' | 'ng_compressed' | 'electric' | 'bi_fuel_gas' | 'bi_fuel_methanol' | 'bi_fuel_ethanol' | 'bi_fuel_lpg' | 'bi_fuel_cng' | 'bi_fuel_ng' | 'bi_fuel_diesel' | 'bi_fuel_propane' | 'bi_fuel_battery' | 'bi_fuel_battery_combustion' | 'hybrid_gas' | 'hybrid_gas_ethanol' | 'hybrid_diesel' | 'hybrid_battery' | 'hybrid_battery_combustion' | 'hybrid_regeneration_mode' | 'dual_fuel_diesel_cng' | 'dual_fuel_diesel_lng' | 'hydrogen' | 'fuel_cell_hydrogen';
export type FuelTypeGroup = 'liquid' | 'gas' | 'electric' | 'hydrogen' | 'hybrid' | 'unknown';
/**
 * Maps each fuel type group to its representative icon.
 *
 * This icon can be used to visually identify the group in the UI,
 * such as in filter buttons or labels.
 */
export declare const fuelTypeGroupIcons: Record<FuelTypeGroup, IconType>;
/**
 * List of all defined fuel type groups (excluding "unknown").
 *
 * Used to render UI elements like filter buttons or fuel group selectors.
 */
export declare const fuelTypeGroups: FuelTypeGroup[];
/**
 * Returns the icon for a given fuel type group.
 *
 * @param fuelTypeGroup - The fuel group to get the icon for.
 * @returns The corresponding icon for the group.
 *
 * @example
 * getFuelTypeGroupIcon('gas') // → 'rioglyph-fuel-gas'
 */
export declare const getFuelTypeGroupIcon: (fuelTypeGroup: FuelTypeGroup) => import('../components/rioglyph/RioglyphIconType').RioglyphIconType;
/**
 * Returns the representative icon for a specific fuel type.
 *
 * This function maps a fuel type to its logical fuel group,
 * and returns the icon associated with that group.
 *
 * @param fuelType - The specific fuel type of the item. Default is 'unknown'.
 * @returns The icon associated with the resolved fuel group.
 *
 * @example
 * getFuelIcon('cng') // → 'rioglyph-fuel-gas'
 */
export declare const getFuelIcon: (fuelType?: FuelType) => IconType;
/**
 * Filters a list of items by fuel group.
 *
 * @param items - The list of items to filter.
 * @param activeGroups - The selected fuel type groups to include in the result.
 * @param getFuelType - Function to extract the fuel type from an item.
 * @returns The filtered list containing only items that belong to one of the specified fuel groups.
 *
 * @example
 * filterByFuelTypeGroup(vehicles, ['electric'], v => v.fuelType);
 */
export declare const filterByFuelTypeGroup: <T>(items: T[], activeGroups: FuelTypeGroup[], getFuelType: (item: T) => FuelType | undefined) => T[];
/**
 * Counts how many items belong to each fuel type group.
 *
 * @param items - The list of items to count.
 * @param getFuelType - Function to extract the fuel type from an item.
 * @returns An object mapping each fuel type group to its count.
 *
 * @example
 * countFuelTypeGroups(vehicles, v => v.fuelType);
 */
export declare const countFuelTypeGroups: <T>(items: T[], getFuelType: (item: T) => FuelType | undefined) => Record<FuelTypeGroup, number>;
