import { TObjectValues } from "../types";
import { DOMAIN } from "../constants";
import { BaseNode } from "./BaseNode";
export type TImprovementNode = Pick<ImprovementNode, "constructibleType" | "adjacentSeaResource" | "airSlots" | "barbarianCamp" | "buildInLine" | "buildOnFrontier" | "canBuildOnNonDistrict" | "canBuildOutsideTerritory" | "cityBuildable" | "defenseModifier" | "discoveryType" | "dispersalGold" | "domain" | "grantFortification" | "icon" | "ignoreNaturalYields" | "improvementOnRemove" | "mustBeAppealing" | "onePerSettlement" | "removeOnEntry" | "resourceTier" | "sameAdjacentValid" | "traitType" | "unitBuildable" | "weaponSlots" | "workable">;
export declare class ImprovementNode extends BaseNode<TImprovementNode> {
    constructibleType: string | null;
    adjacentSeaResource: boolean | null;
    airSlots: number | null;
    barbarianCamp: boolean | null;
    buildInLine: boolean | null;
    buildOnFrontier: boolean | null;
    canBuildOnNonDistrict: boolean | null;
    canBuildOutsideTerritory: boolean | null;
    cityBuildable: boolean | null;
    defenseModifier: number | null;
    discoveryType: string | null;
    dispersalGold: number | null;
    domain: TObjectValues<typeof DOMAIN> | null;
    grantFortification: number | null;
    icon: string | null;
    ignoreNaturalYields: boolean | null;
    improvementOnRemove: string | null;
    mustBeAppealing: boolean | null;
    onePerSettlement: boolean | null;
    removeOnEntry: boolean | null;
    resourceTier: number | null;
    sameAdjacentValid: boolean | null;
    traitType: string | null;
    unitBuildable: boolean | null;
    weaponSlots: number | null;
    workable: boolean | null;
    constructor(payload?: Partial<TImprovementNode>);
}
