/// import * as Datastore from '@google-cloud/datastore'; import { DatastoreKey, DatastorePayload } from '@google-cloud/datastore/entity'; import { OrderOptions, QueryInfo } from '@google-cloud/datastore/query'; import { DatastoreTransaction } from '@google-cloud/datastore/transaction'; import { OneOrMany } from '../util/types'; import { Context } from './context'; import { Filters } from './filters'; export declare type Index = true | { [K in keyof T]?: T[K] extends Array ? Index : Index; }; export interface QueryOptions { select: OneOrMany; filters: Filters; sort: { property: keyof T & string; options: OrderOptions; }; groupBy: OneOrMany; start: string; end: string; hasAnscestor: DatastoreKey; offset: number; limit: number; } export declare type WithDatstoreKey = T & { [Datastore.KEY]: DatastoreKey; }; export declare class DatastoreLoader { private readonly loader; private readonly datastore; private readonly parentContext; private readonly logger; constructor(datastore: Datastore | DatastoreTransaction, context: Context); get(id: DatastoreKey[]): Promise; save(entities: ReadonlyArray>): Promise; delete(entities: ReadonlyArray): Promise; update(entities: ReadonlyArray>): Promise; upsert(entities: ReadonlyArray>): Promise; insert(entities: ReadonlyArray>): Promise; executeQuery(kind: string, options: Partial>): Promise<[WithDatstoreKey[], QueryInfo]>; inTransaction(callback: (tx: Context) => Promise): Promise; private applyBatched; private load; }