template<class Default = default_domain, class Sndr>
constexpr auto completion-domain(const Sndr& sndr) noexcept;
template<class Tag, class Env, class Default>
constexpr decltype(auto) query-with-default(
Tag, const Env& env, Default&& value) noexcept(see below);
template<class Sndr>
constexpr auto get-domain-early(const Sndr& sndr) noexcept;
template<class Sndr, class Env>
constexpr auto get-domain-late(const Sndr& sndr, const Env& env) noexcept;
template<size_t I, class Self>
constexpr decltype(auto) get(this Self&& self) noexcept;
template<class Tag, class Data = see below, class... Child>
constexpr auto make-sender(Tag tag, Data&& data, Child&&... child);
[]<class Sndr, class Rcvr, size_t... Is>(
basic-state<Sndr, Rcvr>* op, Sndr&& sndr, index_sequence<Is...>) noexcept(see below)
-> decltype(auto) {
auto& [_, data, ...child] = sndr;
return product-type{connect(
std::forward_like<Sndr>(child),
basic-receiver<Sndr, Rcvr, integral_constant<size_t, Is>>{op})...};
}
template<class Sndr, class... Env>
static consteval void default-impls::check-types();
template<class T, class Context>
decltype(auto) allocator-aware-forward(T&& obj, Context&& context); // exposition only
template<class Sndr, class... Env>
consteval auto get_completion_signatures() -> valid-completion-signatures auto;
template<class Sndr, class Env>
static consteval void check-types();
template<class Sndr, class... Env>
static consteval void check-types();
template<class Sndr, class... Env>
static consteval void check-types();
template<class Sndr, class... Env>
static consteval void check-types();
template<class Sndr, class... Env>
static consteval void check-types();
template<class Sndr, class... Env>
static consteval void check-types();
template<class Sndr, class... Env>
static consteval void check-types();
associate-data(const associate-data& other)
noexcept(is_nothrow_copy_constructible_v<wrap-sender> &&
noexcept(other.assoc.try_associate()));
associate-data(pair<assoc-t, sender-ref> parts);
~associate-data();
pair<assoc-t, sender-ref> release() && noexcept;
void complete() noexcept;
void abandon() noexcept;
void destroy() noexcept;
template<class... Args>
void set_value(Args&&... args) && noexcept;
template<class Error>
void set_error(Error&& err) && noexcept;
void set_stopped() && noexcept;
spawn-state(Alloc alloc, Sender&& sndr, Token token);
void run() noexcept;
void complete() noexcept override;