sender-awaitable(Sndr&& sndr, Promise& p);
value-type await_resume();
template<class Value>
call-result-t<as_awaitable_t, Value, Promise&> await_transform(Value&& value);
bool operator==(const task_scheduler& lhs, const task_scheduler& rhs) noexcept;
void schedule(receiver_proxy& r, span<byte> s) noexcept override;
void schedule_bulk_chunked(size_t shape, bulk_item_receiver_proxy& r,
span<byte> s) noexcept override;
void schedule_bulk_unchunked(size_t shape, bulk_item_receiver_proxy& r,
span<byte> s) noexcept override;
see below schedule();
template<class BulkSndr, class Env>
static constexpr auto transform_sender(BulkSndr&& bulk_sndr, const Env& env)
noexcept(is_nothrow_constructible_v<decay_t<BulkSndr>, BulkSndr>);
task(task&& other) noexcept;
~task();
template<class Self, class... Env>
static consteval auto get_completion_signatures();
template<class R>
state(coroutine_handle<promise_type> h, R&& rr);
~state();
void start() & noexcept;
stop_token_type get-stop-token(); // exposition only
task get_return_object() noexcept;
auto final_suspend() noexcept;
template<class Err>
auto yield_value(with_error<Err> err);
void unhandled_exception();
coroutine_handle<> unhandled_stopped() noexcept;
void return_void();
template<class V>
void return_value(V&& v);
unspecified get_env() const noexcept;
void* operator new(size_t size);
template<class Alloc, class... Args>
void* operator new(size_t size, allocator_arg_t, Alloc alloc, Args&&...);
template<class This, class Alloc, class... Args>
void* operator new(size_t size, const This&, allocator_arg_t, Alloc alloc, Args&&...);
void operator delete(void* pointer, size_t size) noexcept;