import { Ctor, Func1, Func2, IGrouping, InlineCountInfo, IOrderedQuery, IQuery, IQueryPart, IQueryProvider, Predicate, Result, TypePredicate } from "./shared"; export declare class Query implements IOrderedQuery, Iterable { readonly provider: IQueryProvider; readonly parts: IQueryPart[]; constructor(provider: IQueryProvider, parts?: IQueryPart[]); aggregate(func: Func2, seed?: TAccumulate, ...scopes: any[]): TAccumulate; aggregateAsync(func: Func2, seed?: TAccumulate, ...scopes: any[]): PromiseLike; all(predicate: Predicate, ...scopes: any[]): Result; allAsync(predicate: Predicate, ...scopes: any[]): PromiseLike>; any(predicate?: Predicate, ...scopes: any[]): Result; anyAsync(predicate?: Predicate, ...scopes: any[]): PromiseLike>; average(selector?: Func1, ...scopes: any[]): Result; averageAsync(selector?: Func1, ...scopes: any[]): PromiseLike>; cast(type: Ctor): IQuery; concat(other: T[]): IQuery; contains(item: T, comparer?: Func2, ...scopes: any[]): Result; containsAsync(item: T, comparer?: Func2, ...scopes: any[]): PromiseLike>; count(predicate?: Predicate, ...scopes: any[]): Result; countAsync(predicate?: Predicate, ...scopes: any[]): PromiseLike>; defaultIfEmpty(defaultValue?: T): IQuery; distinct(comparer?: Func2, ...scopes: any[]): IQuery; elementAt(index: number): Result; elementAtAsync(index: number): PromiseLike>; elementAtOrDefault(index: number): Result; elementAtOrDefaultAsync(index: number): PromiseLike>; except(other: T[], comparer?: Func2, ...scopes: any[]): IQuery; first(predicate?: Predicate, ...scopes: any[]): Result; firstAsync(predicate?: Predicate, ...scopes: any[]): PromiseLike>; firstOrDefault(predicate?: Predicate, ...scopes: any[]): Result; firstOrDefaultAsync(predicate?: Predicate, ...scopes: any[]): PromiseLike>; groupBy>(keySelector: Func1, elementSelector?: Func2, ...scopes: any[]): IQuery; groupJoin(other: TOther[], thisKey: Func1, otherKey: Func1, selector: Func2, ...scopes: any[]): IQuery; inlineCount(): IQuery; intersect(other: T[], comparer?: Func2, ...scopes: any[]): IQuery; join(other: TOther[], thisKey: Func1, otherKey: Func1, selector: Func2, ...scopes: any[]): IQuery; last(predicate?: Predicate, ...scopes: any[]): Result; lastAsync(predicate?: Predicate, ...scopes: any[]): PromiseLike>; lastOrDefault(predicate?: Predicate, ...scopes: any[]): Result; lastOrDefaultAsync(predicate?: Predicate, ...scopes: any[]): PromiseLike>; max(selector?: Func1, ...scopes: any[]): Result; maxAsync(selector?: Func1, ...scopes: any[]): PromiseLike>; min(selector?: Func1, ...scopes: any[]): Result; minAsync(selector?: Func1, ...scopes: any[]): PromiseLike>; ofGuardedType(checker: TypePredicate): IQuery; ofType(type: Ctor | TResult): IQuery; orderBy(keySelector: Func1, ...scopes: any[]): IOrderedQuery; orderByDescending(keySelector: Func1, ...scopes: any[]): IOrderedQuery; reverse(): IQuery; select(selector: Func1, ...scopes: any[]): IQuery; selectMany(selector: Func1, ...scopes: any[]): IQuery; sequenceEqual(other: T[], comparer?: Func2, ...scopes: any[]): Result; sequenceEqualAsync(other: T[], comparer?: Func2, ...scopes: any[]): PromiseLike>; single(predicate?: Predicate, ...scopes: any[]): Result; singleAsync(predicate?: Predicate, ...scopes: any[]): PromiseLike>; singleOrDefault(predicate?: Predicate, ...scopes: any[]): Result; singleOrDefaultAsync(predicate?: Predicate, ...scopes: any[]): PromiseLike>; skip(count: number): IQuery; skipWhile(predicate: Predicate, ...scopes: any[]): IQuery; sum(selector?: Func1, ...scopes: any[]): Result; sumAsync(selector?: Func1, ...scopes: any[]): PromiseLike>; take(count: number): IQuery; takeWhile(predicate: Predicate, ...scopes: any[]): IQuery; thenBy(keySelector: Func1, ...scopes: any[]): IOrderedQuery; thenByDescending(keySelector: Func1, ...scopes: any[]): IOrderedQuery; union(other: T[], comparer?: Func2, ...scopes: any[]): IQuery; where(predicate: Predicate, ...scopes: any[]): IQuery; zip(other: TOther[], selector: Func2, ...scopes: any[]): IQuery; toArray(ctor?: Ctor): Result; toArrayAsync(ctor?: Ctor): PromiseLike>; [Symbol.iterator](): never; protected create(part: IQueryPart): IQuery; protected fixCtorArg(partCurry: (scopes: unknown[]) => IQueryPart, ctor: Ctor, ...scopes: any[]): IQuery; }