import { HttpHeaders } from '@angular/common/http';
import { Observable, Subject } from 'rxjs';
import * as Keycloak_ from 'keycloak-js';
export declare const Keycloak: typeof Keycloak_;
import { ExcludedUrlRegex, KeycloakOptions } from '../interfaces/keycloak-options';
import { KeycloakEvent } from '../interfaces/keycloak-event';
export declare class KeycloakService {
    private _instance;
    private _userProfile;
    private _enableBearerInterceptor;
    private _silentRefresh;
    private _loadUserProfileAtStartUp;
    private _bearerPrefix;
    private _authorizationHeaderName;
    private _excludedUrls;
    private _keycloakEvents$;
    private bindsKeycloakEvents;
    private loadExcludedUrls;
    private initServiceValues;
    init(options?: KeycloakOptions): Promise<boolean>;
    login(options?: Keycloak.KeycloakLoginOptions): Promise<void>;
    logout(redirectUri?: string): Promise<void>;
    register(options?: Keycloak.KeycloakLoginOptions): Promise<void>;
    isUserInRole(role: string, resource?: string): boolean;
    getUserRoles(allRoles?: boolean): string[];
    isLoggedIn(): Promise<boolean>;
    isTokenExpired(minValidity?: number): boolean;
    updateToken(minValidity?: number): Promise<boolean>;
    loadUserProfile(forceReload?: boolean): Promise<Keycloak.KeycloakProfile>;
    getToken(): Promise<string>;
    getUsername(): string;
    clearToken(): void;
    addTokenToHeader(headers?: HttpHeaders): Observable<HttpHeaders>;
    getKeycloakInstance(): Keycloak.KeycloakInstance;
    readonly excludedUrls: ExcludedUrlRegex[];
    readonly enableBearerInterceptor: boolean;
    readonly keycloakEvents$: Subject<KeycloakEvent>;
}
