import * as express from "express";
import * as passport from "passport";
import { Base, User } from "@openiap/openflow-api";
import { Span } from "@opentelemetry/api";
interface IVerifyFunction {
    (error: any, profile: any): void;
}
export declare class Provider extends Base {
    constructor();
    provider: string;
    id: string;
    name: string;
    issuer: string;
    saml_federation_metadata: string;
    consumerKey: string;
    consumerSecret: string;
    saml_signout_url: string;
}
export declare class googleauthstrategyoptions {
    clientID: string;
    clientSecret: string;
    callbackURL: string;
    scope: string[];
    verify: any;
}
export declare class samlauthstrategyoptions {
    callbackUrl: string;
    entryPoint: string;
    issuer: string;
    cert: string;
    audience: string;
    signatureAlgorithm: 'sha1' | 'sha256' | 'sha512';
    callbackMethod: string;
    verify: any;
}
export declare class LoginProvider {
    static _providers: any;
    static remoteip(req: express.Request): string;
    static escape(s: string): string;
    static redirect(res: any, originalUrl: string): void;
    static validateToken(rawAssertion: string, parent: Span): Promise<User>;
    static configure(app: express.Express, baseurl: string, parent: Span): Promise<void>;
    static RegisterProviders(app: express.Express, baseurl: string, parent: Span): Promise<void>;
    static CreateOpenIDStrategy(app: express.Express, discoveryurl: string, key: string, clientID: string, clientSecret: string, baseurl: string, span: Span): Promise<any>;
    static CreateGoogleStrategy(app: express.Express, key: string, consumerKey: string, consumerSecret: string, baseurl: string, span: Span): any;
    static CreateSAMLStrategy(app: express.Express, key: string, cert: string, singin_url: string, issuer: string, baseurl: string, span: Span): passport.Strategy;
    static CreateLocalStrategy(app: express.Express, baseurl: string): passport.Strategy;
    static samlverify(req: any, profile: any, done: IVerifyFunction): Promise<void>;
    static openidverify(issuer: string, profile: any, done: any): Promise<void>;
    static googleverify(req: any, token: string, tokenSecret: string, profile: any, done: IVerifyFunction): Promise<void>;
    static reverseLookup(ip: any): Promise<string>;
    static sendEmail(type: string, userid: string, to: string, subject: string, text: string, span: Span): Promise<string>;
    static get_dashboardauth(req: any, res: any, next: any): Promise<any>;
    static get_Signout(req: any, res: any, next: any): void;
    static get_PassiveSignout(req: any, res: any, next: any): void;
    static get_user(req: any, res: any, next: any): Promise<void>;
    static get_jwt(req: any, res: any, next: any): void;
    static get_jwtlong(req: any, res: any, next: any): void;
    static post_jwt(req: any, res: any, next: any): Promise<void>;
    static get_config(req: any, res: any, next: any): Promise<void>;
    static post_AddTokenRequest(req: any, res: any, next: any): Promise<void>;
    static get_GetTokenRequest(req: any, res: any, next: any): Promise<void>;
    static get_login(req: any, res: any, next: any): Promise<void>;
    static get_validateuserform(req: any, res: any, next: any): Promise<void>;
    static get_read(req: any, res: any): Promise<any>;
    static post_validateuserform(req: any, res: any): Promise<any>;
    static post_forgotpassword(req: any, res: any): Promise<any>;
    static get_loginproviders(req: any, res: any, next: any): Promise<void>;
    static get_download(req: any, res: any): Promise<any>;
}
export {};
