///
import { OAuthConfigType, WindowOptions } from "../";
import { BrowserWindow } from "electron";
import { EventEmitter } from "events";
import { ResponseType } from "../utils";
export interface OAuth2EmitterType {
emit(event: "before-authorize-request", parameters: object): boolean;
emit(event: "before-access-token-request", parameters: object, headers: object): boolean;
}
export default interface OAuth2Provider {
on(event: "before-authorize-request", listener: (query: {
[key: string]: any;
}) => void): this;
on(event: "before-access-token-request", listener: (parameters: {
[key: string]: any;
}, headers: {
[key: string]: any;
}) => void): this;
}
export default class OAuth2Provider extends EventEmitter implements OAuth2EmitterType {
config: OAuthConfigType;
finished: boolean;
userCancelError?: Error;
constructor(config: OAuthConfigType);
/**
* Initiate OAuth2 flow.
*
* if grant_type is "code" or "token", you need to pass "window" argument.
* In other cases it is not necessary.
*
* @example
* ```js
* const window = new BrowserWindow({
* width: 600,
* height: 800,
* webPreferences: {
* nodeIntegration: false // We recommend disabling nodeIntegration for security.
* contextIsolation: true // We recommend enabling contextIsolation for security.
* // see https://github.com/electron/electron/blob/master/docs/tutorial/security.md
* },
* })
* const provider = new OAuth2Provider(config)
* provider.perform(window)
* .then(console.log)
* .catch(console.error)
* ```
*
*/
perform(window?: BrowserWindow, windowOptions?: WindowOptions): Promise;
}
//# sourceMappingURL=index.d.ts.map