import { Building } from "./Building"; /** * `building.validity.valid` is true if the building passes a few validity * tests. This is useful for testing. * * There are several reasons that it could be false: * 1. There's more than one room with the same name. * 2. There's at least one hallway that doesn't have any nodes (Forks or * Stairs) to connect it to the rest of the building. * 3. The graph isn't connected (`connectedSections > 1`). That means there's * a group of at least one node that isn't connected to the rest of the graph. * 4. There are negative edge weights in the graph. * * If `building.validity.valid` is false, `building.validity.reason` gives * the reason why it's invalid. * * `connectedSections` is a string[][], where each string[] is a list of nodes * that are all connected. (Each string[] forms a connected graph.) This is * useful for debugging to figure out which nodes aren't connected to the rest * of the graph. */ export declare function isValidBuilding(b: Building): { valid: true; connectedSections: string[][]; } | { valid: false; reason: string; connectedSections: string[][]; }; export declare function assertValidBuilding(b: Building): void;