package ru.landgrafhomyak.utility.closeable_state public interface CloseableState : AutoCloseable { public fun throwClosed(): Nothing public fun throwInUse(): Nothing public fun assertNotClosed() public val isClosed: Boolean @ManualStateManipulation public fun startUsage() @ManualStateManipulation public fun finishUsage() @ManualStateManipulation public override fun close() public interface AllowsConcurrency : CloseableState { } public interface ExternallySynchronized : CloseableState { public val isInUse: Boolean } }