import { ID, Ent, Viewer, Data, LoadEntOptions, PrivacyPolicy } from "../../core/base"; import { BuilderSchema, SimpleAction } from "../builder"; import { Field, BaseEntSchema } from "../../schema"; import { NodeType } from "./const"; import { IDViewer, IDViewerOptions } from "../../core/viewer"; import { ObjectLoaderFactory } from "../../core/loaders"; interface TokenOptions extends IDViewerOptions { tokens?: {}; } export declare class ViewerWithAccessToken extends IDViewer { private opts?; constructor(viewerID: ID, opts?: Partial | undefined); hasToken(key: string): boolean; } export declare class FakeUser implements Ent { viewer: Viewer; readonly id: ID; readonly data: Data; readonly nodeType = NodeType.FakeUser; readonly createdAt: Date; readonly updatedAt: Date; readonly firstName: string; readonly lastName: string; readonly emailAddress: string; readonly phoneNumber: string | null; protected readonly password: string | null; privacyPolicy: PrivacyPolicy; constructor(viewer: Viewer, data: Data); static getFields(): string[]; static getTestTable(): import("../db/test_db").Table; static loaderOptions(): LoadEntOptions; static load(v: Viewer, id: ID): Promise; static loadX(v: Viewer, id: ID): Promise; } export declare class FakeUserSchema extends BaseEntSchema implements BuilderSchema { ent: typeof FakeUser; fields: Field[]; } export interface UserCreateInput { firstName: string; lastName: string; emailAddress: string; phoneNumber: string | null; password: string | null; } export declare type UserEditInput = Partial; export declare function getUserBuilder(viewer: Viewer, input: UserCreateInput): import("../builder").SimpleBuilder; export declare function getUserAction(viewer: Viewer, input: UserCreateInput): SimpleAction; export declare function createUser(viewer: Viewer, input: UserCreateInput): Promise; export declare const userLoader: ObjectLoaderFactory; export declare const userEmailLoader: ObjectLoaderFactory; export declare const userPhoneNumberLoader: ObjectLoaderFactory; export {};