import type { Feature, MultiPolygon } from "geojson"; export type ContinentId = "africa" | "asia" | "europe" | "north-america" | "south-america" | "oceania" | "antarctica"; /** * The coasts of the continents as lines in longitude and latitude, for a child to colour a whole continent: the line round each continent and between two continents (Europe and Asia), and none between two countries of one continent. Islands under `minAreaSr` steradians are left out * (about 80,000 square kilometres at the default, so Great Britain, Japan, Madagascar and New Zealand stay and small islands go, which at a thick line would only be blobs). * @param minAreaSr - The smallest island kept, in steradians (the whole sphere is 4 pi). * @returns Lines of `[longitude, latitude]` points. * * @example * ```ts * import { continentLines } from "@johnmorrisdotca/chikyu-earth/sheets"; * * const lines = continentLines(); * console.log(lines.length > 5, lines[0]?.length); * ``` */ export declare function continentLines(minAreaSr?: number): [number, number][][]; /** * How much of the Earth is land, by the package's outlines, in percent, and the share of all the land each continent has. * @returns The land's percent of the whole sphere, and each continent's percent of the land. * * @example * ```ts * import { landShares } from "@johnmorrisdotca/chikyu-earth/sheets"; * * const shares = landShares(); * console.log(Math.round(shares.landPercent), shares.continents.asia > shares.continents.africa); * ``` */ export declare function landShares(): { landPercent: number; continents: Record; }; /** * One country as the sheets draw it: its names, its continent, its land as one feature and the names of the countries it touches. * * @example * ```ts * import { countryShape, type CountryShape } from "@johnmorrisdotca/chikyu-earth/sheets"; * * const spain: CountryShape | undefined = countryShape("ES"); * console.log(spain?.neighbours.map((one) => one.name)); * ``` */ export interface CountryShape { name: string; ja: string; alpha2: string | null; continent: ContinentId; /** The main land and the nearby islands as one feature. */ feature: Feature; /** The names of the countries it shares a border with, English and Japanese. */ neighbours: { name: string; ja: string; }[]; } /** * One country by its ISO alpha-2 code, for a "my country" sheet: its main land and the islands near it (a far territory such as French Guiana is left out), the continent it is in and the countries it touches. * @param alpha2 - The two-letter code, such as `JP`. * @returns The shape, or `undefined` when the package has no outline for the code. * * @example * ```ts * import { countryShape } from "@johnmorrisdotca/chikyu-earth/sheets"; * * const france = countryShape("FR"); * console.log(france?.continent, france?.neighbours.length); * ``` */ export declare function countryShape(alpha2: string): CountryShape | undefined; /** * The two-letter codes of the countries that have an outline. * @returns The codes, in the order of the outlines. * * @example * ```ts * import { countryCodes } from "@johnmorrisdotca/chikyu-earth/sheets"; * * console.log(countryCodes().includes("JP")); * ``` */ export declare const countryCodes: () => string[];