Faits :
A.
A.a. Par décision du 2 novembre 2000, l'Office de l'assurance-invalidité du canton de Fribourg (ci-après: l'office AI) a alloué à A._, née en 1965, une rente entière d'invalidité à compter du 1 er février 2000, sur la base d'un taux d'invalidité de 100 %. Au regard des avis des médecins traitants de l'assurée (p. ex. rapport de la doctoresse B._, spécialiste en psychiatrie et psychothérapie, du 1 er février 2000), il a retenu qu'elle était incapable de travailler dans toute activité en raison notamment de troubles psychiques. Le droit à la prestation a été confirmé à plusieurs reprises, la dernière fois par communication du 5 août 2014.
A.b. Dans le cadre d'une procédure de révision de la rente, l'office AI a mis sur pied une mesure de surveillance de l'assurée (rapport de C._ du 24 janvier 2017). Par décision du 13 février 2017, l'office AI a suspendu le versement de la rente avec effet immédiat.
Mandaté par l'office AI, le docteur D._, spécialiste en psychiatrie et psychothérapie, a diagnostiqué notamment de l'adaptation mixte avec anxiété et humeur dépressive (diagnostic différentiel: épisode dépressif majeur récurrent), de gravité légère à moyenne, sans incidence sur la capacité de travail (rapport du 2 novembre 2017. Son appréciation a été contestée par la doctoresse B._ (rapport du 22 décembre 2017). De son côté, la doctoresse E._, spécialiste en médecine interne générale et médecin traitant, a attesté que sa patiente présentait divers problèmes de santé la limitant dans l'exercice de toute activité professionnelle, soit - en plus de l'état dépressif et anxieux sévère - des lombalgies, des gonalgies bilatérales mais prédominantes à droite, ainsi que des problèmes urinaires (rapport du 20 décembre 2017). A la demande de l'office AI, le docteur D._ a rendu un rapport complémentaire, le 23 mars 2018), en se prononçant sur les nouveaux avis médicaux sous l'angle psychiatrique.
Par décision du 18 avril 2018, l'office AI a supprimé la rente avec effet rétroactif au 28 février 2017 (jour où cette prestation avait été suspendue), retenant que l'assurée présentait une capacité de travail entière.
B.
A._ a déféré cette décision au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, qui l'a déboutée par jugement du 24 janvier 2019.
C.
L'assurée interjette un recours en matière de droit public contre ce jugement dont elle demande l'annulation, en concluant principalement au maintien de la rente entière d'invalidité au-delà du 28 février 2017, subsidiairement au renvoi de la cause à l'office AI pour instruction complémentaire et nouvelle décision.

Considérant en droit :
1.
Le recours en matière de droit public peut être interjeté pour violation du droit, tel qu'il est délimité par les art. 95 et 96 LTF. Le Tribunal fédéral applique le droit d'office (<ref-law>). Il statue par ailleurs sur la base des faits établis par l'autorité précédente (<ref-law>), sauf s'ils ont été établis de façon manifestement inexacte ou en violation du droit au sens de l'<ref-law> (<ref-law>). Le recourant qui entend s'en écarter doit expliquer de manière circonstanciée en quoi les conditions de l'<ref-law> sont réalisées sinon un état de fait divergent ne peut pas être pris en considération.
2.
Les constatations de l'autorité cantonale de recours sur l'atteinte à la santé, la capacité de travail de la personne assurée et l'exigibilité - pour autant qu'elles ne soient pas fondées sur l'expérience générale de la vie - relèvent d'une question de fait et ne peuvent donc être contrôlées par le Tribunal fédéral que sous un angle restreint (<ref-ruling> consid. 3.2 p. 398). On rappellera, en particulier, qu'il n'y a pas arbitraire du seul fait qu'une solution autre que celle de l'autorité cantonale semble concevable, voire préférable (<ref-ruling> consid. 2.2 p. 72; <ref-ruling> consid. 6.1 p. 205). Pour qu'une décision soit annulée pour cause d'arbitraire, il ne suffit pas que sa motivation soit insoutenable; il faut encore que cette décision soit arbitraire dans son résultat (<ref-ruling> consid. 3.4 p. 53).
3.
3.1. Le litige porte sur la suppression, par la voie de la révision, du droit à la rente entière d'invalidité allouée à la recourante depuis le 1 er février 2000. Compte tenu des conclusions et motifs du recours, il s'agit en particulier de déterminer si la juridiction cantonale était en droit de se fonder sur l'expertise du docteur D._ pour admettre que la recourante présentait une pleine capacité de travail à compter du mois de janvier 2017.
3.2. La solution du litige ressortit à l'<ref-law>, selon lequel si le taux d'invalidité du bénéficiaire de la rente subit une modification notable, la rente est, d'office ou sur demande, révisée pour l'avenir, à savoir augmentée ou réduite en conséquence, ou encore supprimée. Pour le reste, le jugement attaqué cite les autres normes et la jurisprudence nécessaires à la résolution du cas, notamment celles relatives à la notion d'invalidité (<ref-law>), à la reconnaissance du caractère invalidant d'affections psychiques (<ref-ruling>; <ref-ruling> et 418), à l'appréciation des preuves (voir aussi art. 61 let. c LPGA et <ref-ruling> consid. 2.2.2 p. 126 et les références), ainsi qu'à la valeur probante d'expertises médicales (<ref-ruling> consid. 5.1 p. 232 et l'arrêt cité), ainsi que l'admissibilité de mesures de surveillance dans la procédure d'assurance-invalidité (<ref-ruling>). Il suffit d'y renvoyer.
4.
La recourante se prévaut d'une constatation manifestement inexacte des faits en ce qui concerne le volet psychiatrique de sa situation (<ref-law>). Elle soutient qu'il n'existe pas de motif de révision de la rente (<ref-law>), car le docteur D._ ne s'est pas prononcé sur l'évolution de son état de santé psychique entre 2000 et 2017 et n'a pas comparé l'état de santé antérieur avec l'état actuel. En l'absence d'une telle appréciation médicale, la recourante en déduit que la constatation de la juridiction cantonale relative à l'amélioration de son état de santé depuis l'année 2000 est arbitraire.
Par ailleurs, la recourante invoque une violation des règles jurisprudentielles relatives à la suppression d'une rente d'invalidité qui a été versée durant plus de quinze ans. Dans ce contexte, elle fait grief à l'intimé et à la juridiction cantonale d'avoir omis de s'assurer, au moyen de mesures professionnelles, qu'elle pouvait réintégrer elle-même le marché du travail, sans aide particulière. Elle soutient que l'administration ne peut qu'exceptionnellement renoncer à l'examen du besoin d'aide à la réinsertion professionnelle.
5.
5.1. En ce qui concerne tout d'abord la modification de l'état de santé le docteur D._ ne s'est certes pas prononcé explicitement sur l'évolution déterminante. On peut néanmoins tirer du rapport d'expertise du 2 novembre 2017, complété le 23 mars 2018, les éléments nécessaires permettant de statuer en connaissance de cause sur la révision de la rente, singulièrement sur la modification des circonstances exigée par l'<ref-law>. En effet, au terme de son examen clinique et de l'analyse du dossier, l'expert D._ a diagnostiqué un trouble de la lignée dépressive d'un degré de gravité inférieur à celui de l'état anxio-dépressif sévère mis en évidence à l'époque de la décision initiale par les docteurs F._ et G._, médecins au Centre H._, (rapport du 24 août 1999). Il a aussi indiqué que l'état de stress post-traumatique (diagnostiqué dans les années 1990) ne pouvait plus être retenu comme incapacitant et que la recourante avait pu revenir en Suisse en 2012 sans la présence de troubles psychiques aigus. Au regard de ces éléments médicaux, la constatation des premiers juges selon laquelle une amélioration est intervenue n'est pas manifestement inexacte et lie le Tribunal fédéral (supra consid. 1). Il en va de même de leurs constatations relatives à la capacité de travail qui ne sont pas remises en cause plus avant par la recourante.
5.2. En ce qui concerne le droit aux mesures de réinsertion professionnelle, le grief de la recourante n'est pas pertinent. En affirmant que la juridiction cantonale aurait omis de s'assurer qu'elle était en mesure de se réintégrer sur le marché du travail sans aide particulière, la recourante perd de vue que les premiers juges ont constaté qu'elle avait omis d'annoncer - voire tu - le fait qu'elle travaillait. A cet égard, les juges cantonaux ont retenu que la recourante était (souvent seule) dans le magasin en question durant les jours où elle avait été observée, qu'elle s'était également chargée de l'ouverture du magasin, avait donné des instructions à des tiers et avait servi la clientèle (consid. 5.3.2 du jugement entrepris). De pareilles constatations, qui ne sont pas remises en cause par la recourante et lient le Tribunal fédéral, mettent en évidence que l'assurée disposait de capacités suffisantes lui permettant une réadaptation par elle-même. L'administration pouvait renoncer à procéder à de plus amples investigations à ce sujet, nonobstant la longue période durant laquelle la rente entière d'invalidité avait été servie.
5.3. Vu ce qui précède, le recours est mal fondé.
6.
La recourante, qui succombe, supportera les frais de la procédure (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge de la recourante.
3.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 24 septembre 2019
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
La Présidente : Pfiffner
Le Greffier : Berthoud