import HttpClient from "./http-client/http-client";
export default class HeimdallApi {
    private _jwt_token;
    private _jwt_refresh_token;
    private _application_uuid;
    private _current_logged_in;
    private _router;
    private _http_client;
    private _current_mode;
    static readonly MODE_AUTHENTICATED_FULL: string;
    static readonly MODE_AUTHENTICATED_WITH_TOKEN: string;
    constructor();
    authenticate: (payload: AuthenticatePayload) => Promise<AuthenticationTokenObject | void>;
    authenticate_by_token: (payload: AuthenticateByTokenPayload) => Promise<AuthenticationTokenObject | void>;
    isAuthenticated: () => boolean;
    getCurrentLoggedIn: () => string | null;
    logout: () => void;
    refresh: () => Promise<AuthenticationTokenObject | void>;
    refreshWithExternalData: (payload: RefreshPayload) => Promise<AuthenticationTokenObject | void>;
    getUserList: (paginator: PaginatorInterface) => Promise<Array<UserListObject> | void>;
    createUser: (payload: CreateUserPayload) => Promise<UserDetailObject | void>;
    getUser: (id: string) => Promise<UserDetailObject | void>;
    updateUser: (id: string, payload: UpdateUserPayload) => Promise<UserDetailObject | void>;
    deleteUser: (id: string) => Promise<boolean | void>;
    updateUserPassword: (id: string, payload: UpdateUserPasswordPayload) => Promise<UserDetailObject | void>;
    getApplicationList: (paginator: PaginatorInterface) => Promise<Array<ApplicationListObject> | void>;
    getApplication: (id: string) => Promise<ApplicationDetailObject | void>;
    getGroupList: (paginator: PaginatorInterface) => Promise<Array<GroupListObject> | void>;
    createGroup: (payload: CreateGroupPayload) => Promise<GroupDetailObject | void>;
    getGroup: (id: string) => Promise<GroupDetailObject | void>;
    updateGroup: (id: string, payload: UpdateGroupPayload) => Promise<GroupDetailObject | void>;
    deleteGroup: (id: string) => Promise<boolean | void>;
    getKeychainList: (paginator: PaginatorInterface) => Promise<Array<KeychainListObject> | void>;
    createKeychain: (payload: CreateKeychainPayload) => Promise<KeychainCreationDetailObject | void>;
    getKeychain: (id: string) => Promise<KeychainDetailObject | void>;
    deleteKeychain: (id: string) => Promise<boolean | void>;
    getKeychainCipherKey: (id: string) => Promise<KeychainCipherKey | void>;
    getKeychainAccessLogList: (paginator: PaginatorInterface) => Promise<Array<KeychainAccessLogListObject> | void>;
    getKeychainAccessLog: (id: string) => Promise<KeychainAccessLogDetailObject | void>;
    getDeviceSessionList: (paginator: PaginatorInterface) => Promise<Array<DeviceSessionsListObject> | void>;
    getDeviceSession: (id: string) => Promise<DeviceSessionsDetailObject | void>;
    get httpClient(): HttpClient;
}
