import type { AuthUserInfo, FetchAuthUserInfoFn, KeycloakConfig } from './index.js';
export declare function createAuthStore(): {
    isLoading: boolean;
    isAuthenticated: boolean;
    accessToken: string;
    idToken: string;
    userInfo: AuthUserInfo | null;
    authError: string;
    userIsFound: boolean;
};
export type AuthStoreType = ReturnType<typeof createAuthStore>;
export interface AuthenticatedData {
    keycloakUser: AuthUserInfo;
    queryUser: AuthUserInfo | any;
}
export declare class KeycloakService {
    private keycloak;
    private initialized;
    private store;
    private fetchUserInfo;
    private onAuthenticated?;
    private onLogout?;
    private onError?;
    constructor(store: AuthStoreType, fetchUserInfo: FetchAuthUserInfoFn, callbacks?: {
        onAuthenticated?: (val: AuthenticatedData) => void;
        onLogout?: () => void;
        onError?: (error: string) => void;
    });
    init(config: KeycloakConfig, initOptions?: any): Promise<void>;
    private setTokenDetails;
    login(): void;
    refreshToken(): Promise<void>;
    logout(): void;
    getKeycloakInstance(): any;
    isInitialized(): boolean;
}
