import { getPluginDescriptionInfo } from "../../../api/tools/update-plugin-description";
import { AppType } from "../../../types";
type DescInfo = Awaited<ReturnType<typeof getPluginDescriptionInfo>>;
/**
 * 发布前置闸门（PC0）：拉后端插件元信息，校验 name / short / detail-description / icon /
 * category 完整（缺失项判定与逐字段指引见 collectMissingBaseInfo），并顺带用后端真实
 * app_type / point_types 对账本地 app_type。
 *
 * 仅供 `publishProject` 调用：publish 链路本就要求登录态，元信息闸门走 description/info
 * （经 getToolAuthHeaders / Bearer）放在这里才合理。
 *
 * ⚠️ 不要再把它加进 `releaseProject`：release 是零登录态命令（只做本地 build + zip +
 * uploadZipFile，靠 X-MEEGO-TOKEN 插件 secret 鉴权），调它会请求需要登录态的 description/info，
 * 破坏 release 的零鉴权不变量。曾在 commit fa088ef 为 fail-fast 加进 release，已回退。
 *
 * 元信息缺失或 app_type 不符时抛错（由调用方 catch → process.exit(1)）。
 *
 * 校验通过后返回拉到的 descInfo（草稿态元信息）与 categoriesAvailable（后端是否有可选分类），
 * 供调用方复用——publishAIPlugin 用 descInfo 打印「即将随全量发布上线的 base info」，普通插件
 * 把 categoriesAvailable 透传给 commit 前的 Layer 2 复查，无需二次拉取。
 */
export declare function ensurePluginMetadataReady({ siteDomain, appKey, localAppType, }: {
    siteDomain: string;
    appKey: string;
    localAppType: AppType;
}): Promise<{
    descInfo: DescInfo;
    categoriesAvailable: boolean;
}>;
export {};
