import { AppType } from "../../../types";
/**
 * 确定要写进本地 plugin.config.json 的 `app_type`——**以后端为准，不以请求为准**。
 *
 * `lpm create --app-type X` 里的 X 只是"请求后端建成什么形态"；后端可能忽略 / 改写它，
 * 且 resume 路径根本不调 create 接口。所以本地的事实来源必须是 `GetAppDescriptionInfo`
 * 返回的真实 `app_type` / `point_types`（与 config-only init 同一套判定，见
 * dispatcher.ts 的 config-only 分支）。
 *
 * - 后端可达：返回 `deriveAppTypeFromBackend(descInfo)`；若与 `requested` 不一致，warn 出来
 *   （这正是"请求 ai_node 却建成 normal"这类需要暴露的异常信号）。
 * - 后端不可达：由 `onUnreachable` 决定——
 *   - `'fallback'`（默认，`lpm create` 用）：退回 `requested`（聊胜于无的兜底，至少不让 config
 *     缺字段被当 normal）并 warn；`requested` 未传（如 `lpm init` 存量插件）则返回 undefined，
 *     由调用方 no-op、保持原样。
 *   - `'throw'`（`lpm init --config-only` 用）：直接抛出。config-only 是在"领养"一个已存在的
 *     后端插件、没有 `requested` 可兜底，拿不到真实 app_type 就不能继续，必须 fail-fast。
 */
export declare function resolveBackendAppType({ siteDomain, appKey, requested, onUnreachable, }: {
    siteDomain: string;
    appKey: string;
    requested?: AppType;
    onUnreachable?: 'fallback' | 'throw';
}): Promise<AppType | undefined>;
