import type { LabelStyle } from "@johnmorrisdotca/hoshi-stars/sky-labels"; /** A star's place in the sky, in degrees. */ export interface SkyPoint { rightAscension: number; declination: number; } /** A figure of a culture as lines: its key and the pairs of stars its lines join (hoshi-stars' `CultureFigure`, to the part used here). */ export interface CultureFigureLines { id: string; segments: ReadonlyArray; } /** One figure on the screen: where its lines are in `segments`, and its box. */ export interface OnScreen { abbreviation: string; start: number; end: number; left: number; top: number; right: number; bottom: number; x: number; } /** What the sky layer needs of a set of figure lines: those of hoshi-stars' `FigureLines` and of `createCultureLines`. */ export interface Lines { readonly settings: Readonly<{ strength?: number; reach?: number; }>; readonly style: LabelStyle; readonly segments: ArrayLike; readonly count: number; readonly figures: readonly OnScreen[]; opacityOf(figure: OnScreen): number; update(project: (rightAscension: number, declination: number, out: { x: number; y: number; }) => boolean, view: { width: number; height: number; }, avoid?: unknown): number; set(next: { strength?: number; lang?: unknown; style?: Partial; }): void; } /** * The lines of the figures of a culture. * * @param figures - The culture's figures, from hoshi-stars' `figures(culture)`. * @param strength - How strong the lines are when not lit, 0 to 1. * @param styleOf - Makes a label style (hoshi-stars' `labelStyle`) from a partial one. * @param style - The look of the names, a partial `LabelStyle`. * @returns The lines. */ export declare function createCultureLines(figures: readonly CultureFigureLines[], strength: number, styleOf: (style?: Partial) => LabelStyle, style?: Partial): Lines;