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 login_providers: Provider[];
    static escape(s: string): string;
    static redirect(res: any, originalUrl: string): void;
    static validateToken(rawAssertion: string, parent: Span): Promise<User>;
    static getProviders(parent: Span): Promise<any[]>;
    static configure(app: express.Express, baseurl: string): Promise<void>;
    static RegisterProviders(app: express.Express, baseurl: string): Promise<void>;
    static CreateGoogleStrategy(app: express.Express, key: string, consumerKey: string, consumerSecret: string, baseurl: string): any;
    static CreateSAMLStrategy(app: express.Express, key: string, cert: string, singin_url: string, issuer: string, baseurl: string): passport.Strategy;
    static CreateLocalStrategy(app: express.Express, baseurl: string): passport.Strategy;
    static samlverify(profile: any, done: IVerifyFunction): Promise<void>;
    static googleverify(token: string, tokenSecret: string, profile: any, done: IVerifyFunction): Promise<void>;
}
export {};
