import { Context, ID, EdgeQueryableDataOptions, Loader, LoaderFactory, Data } from "../base"; import * as clause from "../clause"; import { ObjectLoaderFactory } from "./object_loader"; export declare class QueryDirectLoader implements Loader { private options; private queryOptions?; constructor(options: QueryOptions, queryOptions?: Partial> | undefined); load(id: K): Promise; clearAll(): void; } export declare class QueryLoader implements Loader { private options; context?: Context | undefined; private queryOptions?; private loader; private primedLoaders; private memoizedInitPrime; constructor(options: QueryOptions, context?: Context | undefined, queryOptions?: Partial> | undefined); private initPrime; load(id: K): Promise; clearAll(): void; } interface QueryOptions { fields: string[]; tableName: string; groupCol?: string; clause?: clause.Clause; sortColumn?: string; toPrime?: ObjectLoaderFactory[]; } export declare class QueryLoaderFactory implements LoaderFactory { private options; name: string; constructor(options: QueryOptions); createLoader(context?: Context): any; createConfigurableLoader(options: EdgeQueryableDataOptions, context?: Context): Loader | QueryDirectLoader; } export {};