import { EndpointOptions } from "./EndpointOptions" ; import { OctokitResponse } from "./OctokitResponse" ; import { RequestInterface } from "./RequestInterface" ; import { RequestParameters } from "./RequestParameters" ; import { Route } from "./Route" ; /**
 * Interface to implement complex authentication strategies for Octokit.
 * An object Implementing the AuthInterface can directly be passed as the
 * `auth` option in the Octokit constructor.
 *
 * For the official implementations of the most common authentication
 * strategies, see https://github.com/octokit/auth.js
 */ export interface AuthInterface < AuthOptions extends any [ ] , Authentication extends any > { ( ... args ) : Promise < Authentication > ; hook : { param { object } endpoint < T = any > ( request , options ) : Promise < OctokitResponse < T > > ; param { string } route param { object } parameters < T = any > ( request , route , parameters ? ) : Promise < OctokitResponse < T > > ; } ; }