// API Link: https://tfb.neocities.org/1.17/org/bukkit/Vibration

namespace org.bukkit {
	/** @description Represents a vibration from a Skulk sensor */
	export class Vibration {

        constructor(origin: org.bukkit.Location, destination: org.bukkit.Vibration_$_Destination, arrivalTime: int) {}

		/** @description Get the vibration arrival time in ticks */
		getArrivalTime() : int {return;}

		/** @description Get the vibration destination */
		getDestination() : org.bukkit.Vibration_$_Destination {return;}

		/** @description Get the origin of the vibration */
		getOrigin() : org.bukkit.Location {return;}

	}

    /** !! This should be an interface, but it can't be due to TS restrictions !! */
    export class Vibration_$_Destination {

        static BlockDestination: org.bukkit.Vibration_$_Destination_$_BlockDestination;
        static EntityDestination: org.bukkit.Vibration_$_Destination_$_EntityDestination;
    }

	export class Vibration_$_Destination_$_BlockDestination {

        constructor(block: org.bukkit.block.Block);
        constructor(block: org.bukkit.Location);
        constructor(block: any) {}

		getBlock() : org.bukkit.block.Block {return;}

		getLocation() : org.bukkit.Location {return;}

	}

	export class Vibration_$_Destination_$_EntityDestination {

        constructor(entity: org.bukkit.entity.Entity) {}

		getEntity() : org.bukkit.entity.Entity {return;}

	}

}