export interface BetaStatus { buildId: string; internalState?: string; externalState?: string; note: string; autoNotifyEnabled?: boolean; submissionState?: string; whatsToTestLocales: string[]; reviewDetail?: { id: string; complete: boolean; missing: string[]; }; testInfoLocales?: string[]; } /** * 외부 테스트 제출 전 "뭐가 비었는지"를 한 번에 본다. * appId 를 함께 주면 앱 단위 항목(심사 정보·테스트 정보)까지 검사한다. */ export declare function getBetaStatus(args: { buildId: string; appId?: string; }): Promise; /** 베타 심사 정보 (앱 단위, 단일 리소스). PATCH 만 가능하다 — Apple 이 앱 생성 때 만들어 둔다. */ export declare function updateBetaReviewDetail(args: { appId: string; fields: Record; }): Promise<{ id: string; attributes: Record; }>; /** 앱 단위 테스트 정보(피드백 이메일·설명 등)를 로케일별로 upsert. */ export declare function upsertBetaTestInfo(args: { appId: string; locale: string; fields: { feedbackEmail?: string; description?: string; marketingUrl?: string; privacyPolicyUrl?: string; }; }): Promise<{ id: string; created: boolean; locale: string; }>; /** 빌드 단위 What to Test 를 로케일별로 upsert. */ export declare function upsertWhatsToTest(args: { buildId: string; locale: string; whatsNew: string; }): Promise<{ id: string; created: boolean; locale: string; }>; /** 빌드를 베타 심사에 제출 (외부 테스터 배포 전 필수). */ export declare function submitBetaReview(buildId: string): Promise<{ submissionId: string; state?: string; }>; /** 베타 그룹에 빌드를 붙이거나 뗀다. 외부 그룹이면 실제 배포/회수다. */ export declare function setBetaGroupBuild(args: { groupId: string; buildId: string; action: 'add' | 'remove'; }): Promise<{ groupId: string; buildId: string; action: string; }>; /** 테스터 초대. 이미 등록된 이메일은 409 가 나므로 개별 결과로 보고한다. */ export declare function addBetaTesters(args: { groupId: string; testers: Array<{ email: string; firstName?: string; lastName?: string; }>; }): Promise>; /** 이미 배포된 빌드에 대해 테스터에게 알림을 다시 보낸다. */ export declare function notifyBetaTesters(buildId: string): Promise<{ notificationId: string; }>;