import { Filter } from 'mongodb'; export { Filter } from 'mongodb'; export declare const SortAscending = 1; export declare const SortDescending = -1; export declare type SortDirection = 1 | -1; export declare type SortCriteria = Array<{ key: string; direction: 1 | -1; }>; export declare type JoinCriteria = Array<{ from: string; local: string; foreign: string; as: string; }>; export interface IZDatabaseQuery { readonly $filter: Filter; readonly $join: JoinCriteria; readonly $sort: SortCriteria; readonly $page: number; readonly $size: number; copy(other: IZDatabaseQuery): IZDatabaseQuery; filter(filter: Filter): IZDatabaseQuery; joins(join: JoinCriteria): IZDatabaseQuery; join(from: string, local: keyof F, foreign: keyof J, as: string): IZDatabaseQuery; sorts(sort: SortCriteria): IZDatabaseQuery; sort(key: string, direction: SortDirection): IZDatabaseQuery; page(page: number): IZDatabaseQuery; size(size: number): IZDatabaseQuery; run(): Promise; }