import { HttpClient } from 'aurelia-fetch-client';
import { Aurelia } from "aurelia-framework";
import { Router } from "aurelia-router";
import { Datacontext } from '../data/data-context';
import { Config } from '../config';
import { BaseOAuthService, OAuthClientWrapper } from './oauth-service';
declare class Auth0ClientWrapper extends OAuthClientWrapper {
    private client;
    init(): Promise<this>;
    accessToken(): Promise<string>;
    protected loginWithRedirect(): Promise<void>;
    handleSignInRedirect(): Promise<void>;
    isAuthenticated(): Promise<boolean>;
    logout(): Promise<void>;
    getUserProfile(): Promise<any>;
    private getCacheLocation;
    private isBrowserBuiltOnChromium;
    private cacheLocationCanBeOverwriten;
}
export declare class Auth0Service extends BaseOAuthService<Auth0ClientWrapper> {
    constructor(router: Router, app: Aurelia, dataContext: Datacontext, config: Config, httpClient: HttpClient);
    protected makeClient(): Promise<Auth0ClientWrapper>;
    get usernameType(): "email" | "username";
    onUserPermissionsChanged(): Promise<void>;
}
export {};
