// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license 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);
}
}