import type { KeycloakTokenParsed } from 'keycloak-js';
import type { ShallowRef, Ref } from 'vue';
import type { KeycloakInstance } from './keycloak';
export interface KeycloakComposable {
    keycloak: ShallowRef<KeycloakInstance>;
    isAuthenticated: Ref<boolean>;
    hasFailed: Ref<boolean>;
    error: Ref<Error | null>;
    isPending: Ref<boolean>;
    token: Ref<string>;
    decodedToken: Ref<KeycloakTokenParsed>;
    username: Ref<string>;
    userId: Ref<string>;
    roles: Ref<string[]>;
    resourceRoles: Ref<Record<string, string[]>>;
    hasRoles: (roles: string[]) => boolean;
    hasResourceRoles: (roles: string[], resource: string) => boolean;
}
export declare const useKeycloak: () => KeycloakComposable;
