/**
* Hook React pour la déconnexion sécurisée.
*
* Wrape `logout()` avec gestion d'état (loading, error)
* et callbacks (onSuccess, onError) pour une intégration UX simple.
*
* @example
* ```tsx
* import { useLogout } from '@ollaid/native-sso';
*
* const LogoutButton = () => {
* const { logout, loading, error } = useLogout({
* onSuccess: () => navigate('/auth/login'),
* onError: (err) => toast.error(err.message),
* });
*
* return (
*
* );
* };
* ```
*
* @version 2.7.9
*/
export interface UseLogoutOptions {
/** Callback appelé après une déconnexion réussie (redirection, toast, etc.) */
onSuccess?: () => void;
/** Callback appelé en cas d'erreur (notification, log, etc.) */
onError?: (error: Error) => void;
}
export interface UseLogoutReturn {
/** Déclenche la déconnexion complète (double revocation SaaS + IAM) */
logout: () => Promise;
/** `true` pendant l'appel de déconnexion */
loading: boolean;
/** Message d'erreur si la déconnexion a échoué, `null` sinon */
error: string | null;
}
export declare const useLogout: (options?: UseLogoutOptions) => UseLogoutReturn;