import { DocumentNode } from 'graphql'; import { InjectableStrategy } from "../../common/types/injectable-strategy"; import { RequestContext } from "../../api/common/request-context"; export interface AuthenticationStrategy extends InjectableStrategy { readonly name: string; defineInputType(): DocumentNode; authenticate(ctx: RequestContext, data: Data): Promise; onLogOut?(ctx: RequestContext, user: any): Promise; }