export interface AuthenticationUserProfile {
    username?: string;
    [key: string]: any;
}
export interface AuthenticationKeycloakState {
    token?: string;
    [key: string]: any;
}
export interface AuthenticationState {
    isAuthenticated?: boolean;
    token?: string;
    keycloak?: AuthenticationKeycloakState | null;
    userProfile?: AuthenticationUserProfile | null;
    permissions?: string[];
    hasPermission?: (permissionId: string) => boolean;
    login?: (...args: any[]) => any;
    logout?: (...args: any[]) => any;
    [key: string]: any;
}
export type AuthenticationBridgeInput = AuthenticationState | (() => AuthenticationState);
export declare function useAuthentication(): AuthenticationState;
