import { DatastoreLoader } from './loader'; import { Datastore } from '@google-cloud/datastore'; import { Request } from 'express'; declare const ContextType: unique symbol; export interface IUserUpdates { email?: string; name?: string; enabled?: boolean; roles?: ReadonlyArray; orgId?: string; props?: any; } export interface IUserCreateRequest extends IUserUpdates { email: string; } export interface IUser extends IUserCreateRequest { id: string; enabled: boolean; roles: ReadonlyArray; orgId?: string; } export declare const Ctxt: (...dataOrPipes: unknown[]) => ParameterDecorator; export interface Context { request: Request; datastore: DatastoreLoader; user?: User; hasAnyRole(...roles: string[]): boolean; props: { [key: string]: any; }; [ContextType]: true; } export declare function isContext(value: object): value is Context; export declare const newContext: (datastore: Datastore) => Context; export declare const transaction: (context: Context, callback: (context: Context) => Promise) => Promise; export {};