/**
 * Copyright (c) 2022, WSO2 Inc. (http://www.wso2.com) All Rights Reserved.
 *
 * WSO2 Inc. licenses this file to you under the Apache License,
 * Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
import { AuthClientConfig, TokenExchangeRequestConfig, StorageManager, IdToken, OIDCEndpoints, Storage, TokenResponse, User } from '@asgardeo/javascript';
import { AuthURLCallback } from '../models';
export declare class AsgardeoNodeCore<T> {
    private _auth;
    private _cryptoUtils;
    private _store;
    private _storageManager;
    constructor(config: AuthClientConfig<T>, store?: Storage);
    signIn(authURLCallback: AuthURLCallback, userId: string, authorizationCode?: string, sessionState?: string, state?: string, signInConfig?: Record<string, string | boolean>): Promise<TokenResponse>;
    getAuthURL(userId: string, signInConfig?: Record<string, string | boolean>): Promise<string>;
    requestAccessToken(authorizationCode: string, sessionState: string, userId: string, state: string): Promise<TokenResponse>;
    getIdToken(userId: string): Promise<string>;
    refreshAccessToken(userId?: string): Promise<TokenResponse>;
    isSignedIn(userId: string): Promise<boolean>;
    signOut(userId: string): Promise<string>;
    getUser(userId: string): Promise<User>;
    getConfigData(): Promise<AuthClientConfig<T>>;
    getOpenIDProviderEndpoints(): Promise<OIDCEndpoints>;
    getDecodedIdToken(userId?: string, idToken?: string): Promise<IdToken>;
    getAccessToken(userId?: string): Promise<string>;
    exchangeToken(config: TokenExchangeRequestConfig, userId?: string): Promise<TokenResponse | Response>;
    reInitialize(config: Partial<AuthClientConfig<T>>): Promise<void>;
    revokeAccessToken(userId?: string): Promise<Response>;
    static didSignOutFail(afterSignOutUrl: string): boolean;
    static isSignOutSuccessful(afterSignOutUrl: string): boolean;
    getStorageManager(): StorageManager<T>;
}
