import * as express from "express";
import { TokenUser, Base } from "@openiap/openflow-api";
import { Provider, KoaContextWithOIDC } from "oidc-provider";
import { Span } from "@opentelemetry/api";
export declare class OAuthProvider {
    private app;
    static instance: OAuthProvider;
    clients: any[];
    oidc: Provider;
    static interactionsUrl(ctx: KoaContextWithOIDC, interaction: any): Promise<any>;
    static logoutSource(ctx: any, form: any): Promise<void>;
    static postLogoutSuccessSource(ctx: any): Promise<void>;
    static store: Map<any, any>;
    static generatekeys(): Promise<unknown>;
    static LoadClients(): Promise<void>;
    static configure(app: express.Express, parent: Span): OAuthProvider;
}
export declare class Account {
    accountId: string;
    user: TokenUser;
    constructor(accountId: string, user: TokenUser);
    claims(): TokenUser;
    static findAccount(ctx: KoaContextWithOIDC, id: any, test: any): Promise<any>;
    static AddAccount(tuser: TokenUser, client: any): Account;
    static GetTokenRequest(code: string, parent: Span): Promise<Base>;
    static AddTokenRequest(code: string, item: Base, parent: Span): Promise<Base>;
    static RemoveTokenRequest(code: string, parent: Span): Promise<any>;
}
