import Configstore from "configstore";
declare const CLIENT_ID = "simba-pkce";
declare const AUTH_URL = "https://simba-dev-sso.platform.simbachain.com";
declare const REALM = "simbachain";
interface PollingConfig {
    maxAttempts: number;
    interval: number;
}
interface KeycloakAccessToken {
    access_token: string;
    expires_in: number;
    expires_at?: number;
    refresh_expires_in: number;
    refresh_expires_at: number;
    refresh_token: string;
    token_type: string;
    not_before_policy: number;
    session_state: string;
    scope: string;
}
declare class KeycloakHandler {
    private config;
    private projectConfig;
    private clientID;
    private authURL;
    private baseURL;
    private realm;
    private verificationInfo;
    private tokenExpirationPad;
    private configBase;
    private authErrors;
    private _loggedIn;
    constructor(config?: Configstore, projectConfig?: Configstore, tokenExpirationPad?: number);
    protected getConfigBase(): string;
    setLoggedInStatus(status: boolean): void;
    isLoggedIn(): boolean;
    logout(): Promise<void>;
    protected deleteAuthInfo(): void;
    protected getPathToConfigFile(): string;
    protected hasConfig(key: string): boolean;
    protected getConfig(key: string): any;
    protected getOrSetConfig(key: string, value: any): any;
    protected setConfig(key: string, value: any): any;
    protected deleteConfig(key: string): void;
    private getVerificationInfo;
    loginUser(): Promise<void | string>;
    getAuthToken(pollingConfig?: PollingConfig, refreshing?: boolean): Promise<KeycloakAccessToken | void>;
    tokenExpired(): boolean;
    refreshTokenExpired(): boolean;
    refreshToken(): Promise<KeycloakAccessToken | void>;
    loginAndGetAuthToken(refreshing?: boolean): Promise<KeycloakAccessToken | void>;
    accessTokenHeader(): Promise<Record<any, any> | void>;
    buildURL(urlExtension: string): string;
    doGetRequest(url: string, contentType?: string, _queryParams?: Record<any, any>, _buildURL?: boolean): Promise<Record<any, any> | Error>;
    doKeycloakGetRequest(url: string, _queryParams?: Record<any, any>): Promise<Record<any, any> | Error>;
    doPostRequest(url: string, _postData?: Record<any, any>, contentType?: string, _buildURL?: boolean): Promise<Record<any, any>>;
    doKeycloakPostRequest(url: string, _postData?: Record<any, any>): Promise<Record<any, any> | Error>;
}
export { KeycloakHandler, CLIENT_ID, AUTH_URL, REALM, };
//# sourceMappingURL=authentication.d.ts.map