import { AbstractStoreClient } from "./base-client.js"; export interface AscApp { id: string; name: string; } export interface AscBuild { id: string; version: string; processingState: string; uploadedDate: string; } export interface AscBetaGroup { id: string; name: string; isInternal: boolean; } /** Non-secret ASC auth references, safe to pass into xcodebuild/altool argv. */ export interface AscEnvAuth { keyId: string; issuerId: string; /** Path to the .p8 key file when configured via ASC_KEY_FILE — required by xcodebuild. */ keyPath?: string; } /** * Resolves keyId / issuerId / key-file PATH from the environment for tools * that shell out (xcodebuild archive/export, altool). Unlike loadCredentials, * this never reads the PEM contents — only a path reference leaves this * function, so no secret material can reach argv or the LLM context. */ export declare function getAscAuthFromEnv(): AscEnvAuth; export declare class AppStoreConnectClient extends AbstractStoreClient { private creds; protected get apiErrorPrefix(): string; /** Mints (or reuses a cached) ES256 JWT. Never logged or persisted. */ private token; /** * JSON:API request with ASC-specific status handling: * 401 → AscAuthError, 429 → AscRateLimitError (retryable), * other non-2xx → generic prefixed Error. Error bodies are always * sanitized + truncated before being embedded in messages. */ private request; /** Resolves an app by bundle ID. */ findApp(bundleId: string): Promise; /** Lists builds for an app, newest first. Optionally filtered by marketing version. */ getBuilds(appId: string, opts?: { version?: string; limit?: number; }): Promise; /** * Sets TestFlight "What to Test" notes for a build. * POST first; on 409 (localization already exists) finds it and PATCHes. */ setWhatToTest(buildId: string, whatsNew: string, locale?: string): Promise; /** Lists TestFlight beta groups for an app. */ getBetaGroups(appId: string): Promise; /** Assigns a build to a beta group (expects 204 No Content). */ addBuildToGroup(groupId: string, buildId: string): Promise; /** Submits a build for external TestFlight beta review. */ submitForBetaReview(buildId: string): Promise; /** Marks a build as exempt from export-compliance encryption review. */ setEncryptionExempt(buildId: string, exempt?: boolean): Promise; } //# sourceMappingURL=app-store-connect.d.ts.map