import { KeycloakConfig, KeycloakError, KeycloakInitOptions, KeycloakLoginOptions, KeycloakLogoutOptions, KeycloakProfile, KeycloakResourceAccess, KeycloakRoles, KeycloakTokenParsed, default as Keycloak } from 'keycloak-js'; export { KeycloakConfig, KeycloakError, KeycloakInitOptions, Keycloak, KeycloakLoginOptions, KeycloakProfile, KeycloakResourceAccess, KeycloakRoles, KeycloakTokenParsed, }; export type VueKeycloakConfig = KeycloakConfig | string; export interface VueKeycloakOptions { config?: VueKeycloakConfig; init?: KeycloakInitOptions; logout?: KeycloakLogoutOptions; updateInterval?: number; autoRefreshToken?: boolean; onReady?: (keycloak: Keycloak, VueKeycloak?: VueKeycloakInstance) => void; onInitError?: (error: Error, err: KeycloakError) => void; onAuthLogout?: (keycloak: Keycloak) => void; onAuthRefreshError?: (keycloak: Keycloak) => void; onAuthRefreshSuccess?: (keycloak: Keycloak) => void; onInitSuccess?(authenticated: boolean): void; } export interface VueKeycloakTokenParsed extends KeycloakTokenParsed { preferred_username?: string; name?: string; } export interface VueKeycloakInstance { ready: boolean; authenticated: boolean; userName?: string; fullName?: string; login?(options?: KeycloakLoginOptions): Promise; loginFn?(options?: KeycloakLoginOptions): Promise; logoutFn?(options?: Keycloak['logout']): Promise | void; createLoginUrl?(options?: KeycloakLoginOptions): Promise; createLogoutUrl?(options?: KeycloakLogoutOptions): string; createRegisterUrl?(options?: KeycloakLoginOptions): Promise; register?(options?: KeycloakLoginOptions): Promise; accountManagement?(): Promise; createAccountUrl?(): string; loadUserProfile?(): Promise; subject?: string; idToken?: string; idTokenParsed?: VueKeycloakTokenParsed; realmAccess?: KeycloakRoles; resourceAccess?: KeycloakResourceAccess; refreshToken?: string; refreshTokenParsed?: VueKeycloakTokenParsed; timeSkew?: number; responseMode?: string; responseType?: string; hasRealmRole?(role: string): boolean; hasResourceRole?(role: string, resource?: string): boolean; token?: string; tokenParsed?: VueKeycloakTokenParsed; keycloak?: Keycloak; }