/// <reference types="node" />
import { Ground } from './ground';
import { LifeStage } from './lifeStage';
import { MajorStar } from './majorStar';
import { MiniStar } from './miniStar';
import { MinorStar } from './minorStar';
import { Sky } from './sky';
import { Temple } from './temple';
import util from 'util';
import { Star } from './star';
declare class Cell {
    #private;
    constructor(sky: Sky, ground: Ground);
    get sky(): Sky;
    get ground(): Ground;
    get temples(): Temple[];
    get majorStars(): MajorStar[];
    get minorStars(): MinorStar[];
    get miniStars(): MiniStar[];
    get allStars(): Star[];
    get allMiniStars(): MiniStar[];
    get borrowCells(): Readonly<BorrowCell>[];
    get leaderStar(): MiniStar;
    set leaderStar(leaderStar: MiniStar);
    get yearGodStar(): MiniStar;
    set yearGodStar(yearGodStar: MiniStar);
    get scholarStar(): MiniStar;
    set scholarStar(scholarStar: MiniStar);
    get ageStart(): number;
    set ageStart(ageStart: number);
    get ageEnd(): number;
    get lifeStage(): LifeStage;
    set lifeStage(lifeStage: LifeStage);
    get cellIndex(): number;
    set cellIndex(cellIndex: number);
    get prevCell(): Cell;
    set prevCell(cell: Cell);
    get nextCell(): Cell;
    set nextCell(cell: Cell);
    get self(): Cell;
    getPrevICell(i: number): Cell;
    getNextICell(i: number): Cell;
    getCellNextDist(cell: Cell): number;
    getCellPrevDist(cell: Cell): number;
    getCellDist(cell: Cell): number;
    [util.inspect.custom](depth: number, opts: any): string;
    toJSON(): {
        sky: Sky;
        ground: Ground;
        temples: Temple[];
        majorStars: MajorStar[];
        minorStars: MinorStar[];
        miniStars: MiniStar[];
        miscStars: MiniStar[];
        ageStart: number | undefined;
        ageEnd: number | undefined;
        lifeStage: LifeStage | undefined;
    };
    toString(): string;
    equals(cell: Cell): boolean;
    get selfWithBorrow(): Cell[];
    get oppositeCell(): Cell;
    get oppositeCellWithBorrow(): Cell[];
    get selfOppositeCells(): [Cell, Cell];
    get selfOppositeCellsWithBorrow(): Cell[];
    get supportCells(): [Cell, Cell];
    get supportCellsWithBorrow(): Cell[];
    get triangleCells(): [Cell, Cell, Cell];
    get triangleCellsWithBorrow(): Cell[];
    get fourCells(): [Cell, Cell, Cell, Cell];
    get fourCellsWithBorrow(): Cell[];
    static cellsWithBorrowCells(cells: Cell[]): Cell[];
    hasMajorMinorStar(targetStar: Star): boolean;
    hasStarInstance(targetStar: Star): boolean;
    hasStar(targetStar: Star): boolean;
    hasAllStars(targetStars: Star[]): boolean;
    hasAnyStars(targetStars: Star[]): boolean;
    hasTemple(targetTemple: Temple): boolean;
}
declare class BorrowCell {
    cell: Cell;
    cellRatio: number;
    constructor(cell: Cell, cellRatio: number);
}
export { Cell, BorrowCell };
