import type { WeightedItem } from "../types/types";
import type { ItalianCity, RawItalianCity } from "../types/city";
interface CityAdapterOptions {
    includeCap?: boolean;
    includeProvince?: boolean;
    includeRegion?: boolean;
}
export declare class CityAdapter {
    /**
     * Converts raw city data to ItalianCity
     * Used for deserialization
     * @param raw  RawItalianCity
     * @returns    ItalianCity
     * */
    static toEnglish(raw: RawItalianCity): ItalianCity;
    /**
     * Converts ItalianCity to raw city data
     * Used for serialization
     * @param city  ItalianCity
     * @returns    RawItalianCity
     * */
    static toRaw(city: ItalianCity): RawItalianCity;
    /**
     * Converts city data for use with WeightedRandomSelector
     * Uses population as weight
     */
    static toWeightedItems(cities: RawItalianCity[]): WeightedItem<RawItalianCity>[];
    /**
     * Converts city data with custom formatting
     */
    static toFormattedWeightedItems(cities: RawItalianCity[], options?: CityAdapterOptions): WeightedItem<string>[];
    /**
     * Formats city data as a string
     */
    private static formatCity;
}
export {};
