package wasi:keyvalue@0.1.0;

/// The `wasi:keyvalue/imports` world provides common APIs for interacting
/// with key-value stores. Components targeting this world will be able to
/// do 
/// 1. CRUD (create, read, update, delete) operations on key-value stores.
/// 2. Atomic `increment` and CAS (compare-and-swap) operations.
/// 3. Batch operations that can reduce the number of round trips to the network.
world imports {
	/// The `eventual` capability allows the component to perform 
	/// eventually consistent CRUD operations on the key-value store.
	import eventual;

	/// The `atomic` capability allows the component to perform atomic
	/// `increment` and CAS (compare-and-swap) operations.
	import atomic;

	/// The `eventual-batch` capability allows the component to perform eventually
	/// consistent batch operations that can reduce the number of round trips to the network.
	import eventual-batch;
}

world keyvalue-handle-watch {
	include imports;
	export handle-watch;
}