import { type Maybe } from "@oliversalzburg/js-utils/data/nil.js";
import { type FaithItem, type UnicornItem, UnicornItemVariant, type ZigguratUpgrade } from "../types/index.js";
import { Setting, SettingThreshold, SettingTrigger, SettingTriggerMax } from "./Settings.js";
export declare class ReligionSettingsItem extends SettingTriggerMax {
    #private;
    get building(): "unicornPasture" | "ivoryCitadel" | "ivoryTower" | "skyPalace" | "sunspire" | "unicornTomb" | "unicornUtopia" | FaithItem;
    get variant(): UnicornItemVariant;
    constructor(building: FaithItem | UnicornItem, variant: UnicornItemVariant, enabled?: boolean);
}
export type ReligionSettingsItems = Record<FaithItem | UnicornItem, ReligionSettingsItem>;
export declare class ReligionSettings extends SettingTrigger {
    buildings: ReligionSettingsItems;
    /**
     * Build best unicorn building first.
     */
    bestUnicornBuilding: Setting;
    bestUnicornBuildingCurrent: ZigguratUpgrade | "unicornPasture" | null;
    /**
     * Sacrifice alicorns for time crystals.
     */
    sacrificeAlicorns: SettingThreshold;
    /**
     * Sacrifice unicorns for tears.
     */
    sacrificeUnicorns: SettingThreshold;
    /**
     * Refine tears into BLS.
     */
    refineTears: SettingThreshold;
    /**
     * Refine time crystals into relics.
     */
    refineTimeCrystals: SettingThreshold;
    /**
     * Praise the sun.
     */
    autoPraise: SettingTrigger;
    /**
     * Adore the galaxy.
     */
    adore: SettingTrigger;
    /**
     * Transcend.
     */
    transcend: Setting;
    constructor(enabled?: boolean, trigger?: number, bestUnicornBuilding?: Setting, sacrificeAlicorns?: SettingThreshold, sacrificeUnicorns?: SettingThreshold, refineTears?: SettingThreshold, refineTimeCrystals?: SettingThreshold, autoPraise?: SettingTrigger, adore?: SettingTrigger, transcend?: Setting);
    private initBuildings;
    load(settings: Maybe<Partial<ReligionSettings>>): void;
}
//# sourceMappingURL=ReligionSettings.d.ts.map