///
/**
* Typed check for {@link Structure.structureType}
* @param s ths structure to check
* @param type structure type constant
* @returns whether this structure is of type
*/
export declare function isStructureType(s: Structure, type: T): s is ConcreteStructureMap[T];
/**
* Typed filter for {@link Room.find}
* @example room.find(FIND_STRUCTURES, { filter: filterStructureType(STRUCTURE_CONTAINER) })
* @param type structure type constant
* @returns filter object
*/
export declare function filterStructureType(type: T): (s: Structure) => s is ConcreteStructureMap[T];
export declare class StructuresByType implements Iterable<[StructureConstant, readonly AnyStructure[]]> {
private map;
readonly length: number;
constructor(sts: AnyStructure[]);
[Symbol.iterator](): IterableIterator<[StructureConstant, AnyStructure[]]>;
get(type: T): ConcreteStructureMap[T][];
}
/**
* Compute a level comparable with {@link StructureController} level evaluating built structures.
* @param sbt storage of all structures by type
* @param requiredStructures structure types needed for a level to be complete
* @returns an object like {@link GlobalControlLevel}
*/
export declare function getStructuralLevel(sbt: StructuresByType, requiredStructures?: readonly BuildableStructureConstant[]): {
level: number;
progress: number;
progressTotal: number;
};
/**
* Compute ticks until a {@link StructureRoad} is destroyed by time decay.
* @param road the road to check
* @returns ticks until decay
*/
export declare function getRoadTicksToDestroy(road: StructureRoad): number;