import { type ContinentId } from "./land.ts"; import type { Lang } from "./common.ts"; /** The Earth's size, from the IAU nominal values (mean radius 6,371 km) and WGS84 (equatorial circumference 40,075 km), rounded: kilometres across, and round the equator. */ export declare const EARTH_KM: { readonly across: 12742; readonly round: 40075; }; /** * The tilt of the Earth's axis to its orbit, in degrees (the IAU's obliquity of the ecliptic at J2000: 23.4393). * * @example * ```ts * import { TILT_DEGREES } from "@johnmorrisdotca/chikyu-earth/sheets"; * * console.log(TILT_DEGREES.toFixed(1)); * ``` */ export declare const TILT_DEGREES = 23.4393; export type PlaceKind = "continent" | "ocean"; /** * A continent or an ocean, with where its name is written on a globe and on the flat map. * * @example * ```ts * import { PLACES, type Place } from "@johnmorrisdotca/chikyu-earth/sheets"; * * const africa: Place | undefined = PLACES.find((place) => place.id === "africa"); * console.log(africa?.en, africa?.ja); * ``` */ export interface Place { id: string; kind: PlaceKind; /** The name in lines of words that are written one under the other. */ en: readonly string[]; /** The Japanese name as a child reads it (the reading), and the kanji with it for a title. */ ja: readonly string[]; kanji: string; /** Longitude and latitude where the name is centred. */ at: readonly [number, number]; /** Where it is centred on the flat world map, when that is not `at`. */ mapAt?: readonly [number, number]; /** On the flat map the name is one line, for the narrow band of sea it is written in. */ oneLine?: boolean; } /** * The seven continents and the five oceans the sheets name, with the longitude and latitude where each name is written. * * @example * ```ts * import { PLACES } from "@johnmorrisdotca/chikyu-earth/sheets"; * * console.log(PLACES.filter((place) => place.kind === "ocean").map((place) => place.en.join(" "))); * ``` */ export declare const PLACES: readonly Place[]; /** A continent's name for a sentence, in one line; Japanese with its kanji. */ export declare function continentName(id: ContinentId, lang: Lang): string; /** * The package's name, the credits and the words a sheet carries, by language (the brand in a sheet's header is the page's to pass in). * * @example * ```ts * import { SAY } from "@johnmorrisdotca/chikyu-earth/sheets"; * * console.log(SAY.en.pack, SAY.ja.day); * ``` */ export declare const SAY: { readonly en: { readonly pack: "Chikyu Earth"; readonly credits: "Outlines: Natural Earth (public domain). Names: kuni. The Sun's place: Meeus, Astronomical Algorithms."; readonly day: "Day"; readonly night: "Night"; readonly sun: "Sun"; readonly flag: "Draw the flag!"; readonly star: "Capital"; readonly light: "Sunlight"; readonly spring: "Spring"; readonly summer: "Summer"; readonly autumn: "Autumn"; readonly winter: "Winter"; readonly months: readonly ["March", "June", "September", "December"]; readonly colour: "Colour the continents, then the oceans."; }; readonly ja: { readonly pack: "Chikyu Earth 地球"; readonly credits: "ちずの せん: Natural Earth (パブリックドメイン)。なまえ: kuni。たいようの いち: Meeus の けいさん。"; readonly day: "ひる"; readonly night: "よる"; readonly sun: "たいよう"; readonly flag: "はたを かこう!"; readonly star: "しゅと"; readonly light: "ひかり"; readonly spring: "はる"; readonly summer: "なつ"; readonly autumn: "あき"; readonly winter: "ふゆ"; readonly months: readonly ["3がつ", "6がつ", "9がつ", "12がつ"]; readonly colour: "たいりくと うみに いろを ぬろう。"; }; }; /** * The three views of the globe sheet: the Americas, Europe and Africa, and Asia and Oceania. * * @example * ```ts * import { GLOBE_VIEWS } from "@johnmorrisdotca/chikyu-earth/sheets"; * * console.log(GLOBE_VIEWS.join(", ")); * ``` */ export declare const GLOBE_VIEWS: readonly ["americas", "europe-africa", "asia-oceania"]; /** * The name of a view of the globe sheet. * * @example * ```ts * import { globeSheetSvg, type GlobeView } from "@johnmorrisdotca/chikyu-earth/sheets"; * * const view: GlobeView = "asia-oceania"; * console.log(globeSheetSvg(view, { widthMm: 184.6, heightMm: 170 }).includes("Asia")); * ``` */ export type GlobeView = (typeof GLOBE_VIEWS)[number]; /** The place at the middle of each view, in longitude and latitude. */ export declare const VIEW_CENTRES: Readonly>; /** Where each name is written on each view of the globe, by place; a name not listed is not on that view. */ export declare const VIEW_LABELS: Readonly>>>; /** * The title of each kind of sheet, in a language. * * @example * ```ts * import { TITLES } from "@johnmorrisdotca/chikyu-earth/sheets"; * * console.log(TITLES.globe("americas", "en"), TITLES.country("Japan", "en"), TITLES.seasons("ja")); * ``` */ export declare const TITLES: { globe: (view: GlobeView, lang: Lang) => string; map: (lang: Lang) => string; country: (name: string, lang: Lang) => string; daynight: (lang: Lang) => string; seasons: (lang: Lang) => string; }; /** * The three facts of the globe sheet and of the world map, in plain words. The map's are the share of the land the biggest and the smallest continents have (from the outlines) and the Pacific. * @param kind - `globe` or `map`. * @param lang - `en` or `ja`. * @returns Three sentences. * * @example * ```ts * import { earthFacts } from "@johnmorrisdotca/chikyu-earth/sheets"; * * console.log(earthFacts("map", "en")[0]); * ``` */ export declare function earthFacts(kind: "globe" | "map", lang: Lang): string[]; /** The moment as words, in UTC: `2026-06-21 12:00 UTC`. */ export declare const momentText: (ms: number) => string; /** * The three facts of the day and night sheet for a moment, with the place the Sun is straight overhead then. * @param ms - The moment, in milliseconds since the Unix epoch. * @param lang - `en` or `ja`. * @returns Three sentences. * * @example * ```ts * import { dayNightFacts } from "@johnmorrisdotca/chikyu-earth/sheets"; * * console.log(dayNightFacts(Date.UTC(2026, 5, 21, 12), "en")[1]); * ``` */ export declare function dayNightFacts(ms: number, lang: Lang): string[]; /** * The three facts of the seasons sheet. * @param lang - `en` or `ja`. * @returns Three sentences. * * @example * ```ts * import { seasonsFacts } from "@johnmorrisdotca/chikyu-earth/sheets"; * * console.log(seasonsFacts("en")[0]); * ``` */ export declare function seasonsFacts(lang: Lang): string[]; /** * The three facts of a "my country" sheet: the continent it is in, the countries it touches and its capital. * @param shape - The country's name and Japanese name, its continent and the names of its neighbours. * @param capital - The capital's name, or `undefined` for a sheet that asks the child to find it. * @param lang - `en` or `ja`. * @returns Three sentences. * * @example * ```ts * import { countryFacts, countryShape } from "@johnmorrisdotca/chikyu-earth/sheets"; * * const france = countryShape("FR")!; * console.log(countryFacts(france, "Paris", "en")[1]); * ``` */ export declare function countryFacts(shape: { name: string; ja: string; continent: ContinentId; neighbours: readonly { name: string; ja: string; }[]; }, capital: string | undefined, lang: Lang): string[];