###*
 * Stage definitions:
 * 
 * 0: Selection:			Got selector, awaiting object.
 * 1: Indication:			Got object, awaiting proxied property / function / Binding-object.
 * 2: Binding Complete:		Complete, awaiting additional (optional) bindings/mutations.
###
BindingInterface = (options, inheritedState)->
	if inheritedState
		extendState(@, inheritedState)
		@stage = 1
	else
		@stage = 0
		@subs = []
		@optionsPassed = options ||= {}
		@options = {}
		for key of defaultOptions
			@options[key] = if options[key]? then options[key] else defaultOptions[key]
	
	return @			
	



import './prototype-private'
import './prototype-public'