import { Currency } from "../business/Currency";
import { AddressContinent, AddressContinentId } from "./AddressContinent";
/**
 * Address region in database
 */
export interface AddressRegionDb {
    /**
     * Id, like CN for China
     * https://www.iban.com/country-codes
     * 国家编号
     */
    readonly id: string;
    /**
     * 3-code id like CHN for China
     * 三个字母国家编号
     */
    readonly id3: string;
    /**
     * Number id, like 156 for China
     * 数字编号
     */
    readonly nid: string;
    /**
     * Continent id
     * 洲编号
     */
    readonly continentId: AddressContinentId;
    /**
     * Phone exit code for international dial, like 00 in China
     * 国际拨号的电话退出代码
     */
    readonly exitCode: string;
    /**
     * National (truck) prefix
     * 国内呼叫的拨号
     */
    readonly nationalPrefix?: string;
    /**
     * Area code for international dial, like 86 for China
     * 国际电话区号
     */
    readonly idd: string;
    /**
     * Currency, like CNY for China's currency
     * 币种
     */
    readonly currency: Currency;
    /**
     * Name
     * 名称
     */
    label: string;
    /**
     * Pinyin or other query assistant data
     * 拼音或其他辅助查询字符串
     */
    py?: string;
}
/**
 * Country or region interface
 */
export interface IAddressRegion extends AddressRegionDb {
    /**
     * Continent
     * 洲
     */
    readonly continent: AddressContinent;
    /**
     * Languages
     * 语言
     */
    readonly languages: string[];
}
/**
 * Address or region
 */
export declare class AddressRegion implements IAddressRegion {
    id: string;
    id3: string;
    nid: string;
    continent: AddressContinent;
    exitCode: string;
    idd: string;
    nationalPrefix: string | undefined;
    currency: Currency;
    languages: string[];
    label: string;
    /**
     * CN - China
     */
    static CN: AddressRegion;
    /**
     * HK - HK, China
     * 中国香港
     */
    static HK: AddressRegion;
    /**
     * SG - Singapore
     * 新加坡
     */
    static SG: AddressRegion;
    /**
     * JP - Japan
     * 日本
     */
    static JP: AddressRegion;
    /**
     * US - United States
     * 美国
     */
    static US: AddressRegion;
    /**
     * CA - Canada
     * 加拿大
     */
    static CA: AddressRegion;
    /**
     * AU - Australia
     * 澳大利亚
     */
    static AU: AddressRegion;
    /**
     * NZ - New Zealand
     * 新西兰
     */
    static NZ: AddressRegion;
    /**
     * GB - Great Britain
     * 英国
     */
    static GB: AddressRegion;
    /**
     * IE - Ireland
     * 爱尔兰
     */
    static IE: AddressRegion;
    /**
     * DE - Germany
     * 德国
     */
    static DE: AddressRegion;
    /**
     * FR - France
     * 法国
     */
    static FR: AddressRegion;
    /**
     * All countries and regions
     */
    static all: AddressRegion[];
    /**
     * Get country or region by id
     * @param id Country id
     */
    static getById(id: string): AddressRegion | undefined;
    /**
     * Continent id
     * 洲编号
     */
    readonly continentId: AddressContinentId;
    constructor(id: string, id3: string, nid: string, continent: AddressContinent, exitCode: string, idd: string, nationalPrefix: string | undefined, currency: Currency, languages: string[], label?: string);
}
