local y=(require(script.Parent.loader)).load(script)local C=y("\077\097\105\100\084\097\115\107\085\116\105\108\115")local e=false local E={}E.ClassName="\083\117\098\115\099\114\105\112\116\105\111\110"E.__index=E local c={PENDING="\112\101\110\100\105\110\103";FAILED="\102\097\105\108\101\100";COMPLETE="\099\111\109\112\108\101\116\101",CANCELLED="\099\097\110\099\101\108\108\101\100"}
--[=[
	Subscriptions are used in the callback for an [Observable](/api/Observable). Standard usage
	is as follows.

	```lua
	-- Constucts an observable which will emit a, b, c via a subscription
	Observable.new(function(sub)
		sub:Fire("a")
		sub:Fire("b")
		sub:Fire("c")
		sub:Complete() -- ends stream
	end)
	```
	@class Subscription
]=]

local require = require(script.Parent.loader).load(script)

local MaidTaskUtils = require("MaidTaskUtils")

local ENABLE_STACK_TRACING = false

local Subscription = {}
Subscription.ClassName = "Subscription"
Subscription.__index = Subscription

local stateTypes = {
	PENDING = "pending",
	FAILED = "failed",
	COMPLETE = "complete",
	CANCELLED = "cancelled",
}
