import { type AppStoreCredentials } from './appstore/auth.js'; interface RemoteConfig { token: string; endpoint: string; webBase: string; } export interface RemoteSyncOptions { confirm?: boolean; includeAppStore?: boolean; includePlayStore?: boolean; packageNames?: string[]; } export interface RemoteSyncDependencies { getConfig(): RemoteConfig | null; getAppStoreCredentials(): AppStoreCredentials | null; listPackageNames(): string[]; /** * 레거시 단일 SA(`play-service-account.json`)가 있는가. 있으면 getServiceAccountJson 이 * 미등록 패키지에도 그 SA 로 폴백하므로, 형식이 맞는 패키지명은 동기화 대상으로 허용한다. */ hasDefaultServiceAccount?(): boolean; getServiceAccountJson(packageName: string): string | null; callRemote(config: RemoteConfig, tool: string, args: Record): Promise<{ text: string; isError: boolean; }>; } /** * 비밀값(ASC .p8, SA 개인키)을 보낼 원격 엔드포인트 검사. `~/.mimi-seed/config.json` 이나 * `MIMI_SEED_WEB_BASE` 가 조작되면 평문 http 나 임의 호스트로 키가 나간다 — https 만 허용하고, * 로컬 개발 서버(루프백)만 http 를 봐준다. */ export declare function checkRemoteEndpoint(endpoint: string): { ok: true; host: string; } | { ok: false; reason: string; }; export declare function syncRemoteCredentials(options: RemoteSyncOptions, dependencies?: RemoteSyncDependencies): Promise; export {};