export interface RegisterRequest {
    email: string;
    password: string;
    firstName: string;
    lastName: string;
}
export interface RegisterResponse {
    message: string;
    email: string;
    requiresEmailConfirmation: boolean;
}
export interface ConfirmEmailResponse {
    message: string;
    email: string;
}
export interface ResendConfirmationResponse {
    message: string;
}
export interface ForgotPasswordResponse {
    message: string;
}
export interface ResetPasswordResponse {
    message: string;
}
export interface LoginResponse {
    token: string;
    refreshToken: string;
    user: {
        id: string;
        email: string;
        firstName: string;
        lastName: string;
    };
    mustChangePassword: boolean;
}
export interface ChangePasswordResponse {
    message: string;
    requireRelogin?: boolean;
}
export interface RefreshResponse {
    token: string;
    refreshToken: string;
    user: {
        id: string;
        email: string;
        firstName: string;
        lastName: string;
        roles: string[];
        permissions: string[];
    };
}
export interface SessionInfoResponse {
    sessionId: string;
    loginAt: string;
    lastActivityAt: string;
    timeUntilIdleExpirySeconds: number;
    timeUntilAbsoluteExpirySeconds: number;
    isWarningThreshold: boolean;
    idleTimeoutMinutes: number;
    absoluteTimeoutHours: number;
    warningThresholdMinutes: number;
}
export declare const authApi: {
    /**
     * Créer un nouveau compte utilisateur
     */
    register: (data: RegisterRequest) => Promise<RegisterResponse>;
    /**
     * Confirmer l'adresse email avec le token reçu par email
     */
    confirmEmail: (token: string) => Promise<ConfirmEmailResponse>;
    /**
     * Renvoyer l'email de confirmation
     */
    resendConfirmation: (email: string) => Promise<ResendConfirmationResponse>;
    /**
     * Demander un lien de réinitialisation de mot de passe
     */
    forgotPassword: (email: string) => Promise<ForgotPasswordResponse>;
    /**
     * Réinitialiser le mot de passe avec le token reçu par email
     */
    resetPassword: (token: string, newPassword: string) => Promise<ResetPasswordResponse>;
    /**
     * Connexion utilisateur
     */
    login: (email: string, password: string) => Promise<LoginResponse>;
    /**
     * Déconnexion utilisateur
     */
    logout: () => Promise<void>;
    /**
     * Changer le mot de passe (obligatoire après reset admin)
     */
    changePassword: (currentPassword: string, newPassword: string) => Promise<ChangePasswordResponse>;
    /**
     * Rafraîchir le token de session (prolonge la session)
     */
    refreshSession: () => Promise<RefreshResponse>;
    /**
     * Obtenir les informations de session (temps restant, etc.)
     */
    getSessionInfo: (config?: {
        signal?: AbortSignal;
    }) => Promise<SessionInfoResponse>;
};
//# sourceMappingURL=authApi.d.ts.map