import { AnyClass } from 'tn-typescript'; import { ExoConnResponse } from '../../ExoConnection/ExoConnResponse/ExoConnResponse'; import { ExoConnection } from '../../ExoConnection/ExoConnection'; import { ExoContext } from '../../ExoContext/ExoContext'; import { ExoConstructor } from '../../accessories/ExoTypings'; export type ExoGraphResultType = ExoConstructor | [ExoConstructor] | AnyClass | [AnyClass]; type Promize = T | Promise; export interface ExoGraphServeProps extends ExoServeProps { conn: ExoConnection; res: ExoConnResponse; ctx: ExoContext; user: ExoContextUser; args: F; } export type ExoGraphServe = (props: ExoGraphServeProps) => R extends StringConstructor[] ? Promize : R extends StringConstructor ? Promize : R extends NumberConstructor[] ? Promize : R extends NumberConstructor ? Promize : R extends BooleanConstructor[] ? Promize : R extends BooleanConstructor ? Promize : R extends AnyClass[] ? Promize[]> : R extends AnyClass ? Promize> : R; export {};