// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information.
using System.Collections.Generic;
using System.Reactive.Concurrency;
namespace System.Reactive.Linq
{
///
/// Internal interface describing the LINQ to Events query language.
///
internal interface IQueryLanguageEx
{
IObservable Create(Func, IEnumerable>> iteratorMethod);
IObservable Create(Func>> iteratorMethod);
IObservable Expand(IObservable source, Func> selector);
IObservable Expand(IObservable source, Func> selector, IScheduler scheduler);
IObservable ForkJoin(IObservable first, IObservable second, Func resultSelector);
IObservable ForkJoin(params IObservable[] sources);
IObservable ForkJoin(IEnumerable> sources);
IObservable Let(IObservable source, Func, IObservable> function);
IObservable ManySelect(IObservable source, Func, TResult> selector);
IObservable ManySelect(IObservable source, Func, TResult> selector, IScheduler scheduler);
ListObservable ToListObservable(IObservable source);
}
}