import type { SdCapacitorConfig } from "../sd-config.types.js";
/**
 * Capacitor 프로젝트 관리 클래스
 *
 * - Capacitor 프로젝트 초기화
 * - Android 네이티브 설정 구성
 */
export declare class Capacitor {
    private readonly _pkgPath;
    private readonly _config;
    private readonly _exclude;
    private static readonly _LOCK_FILE_NAME;
    private static readonly _logger;
    private readonly _capPath;
    private readonly _platforms;
    private readonly _npmConfig;
    private constructor();
    /**
     * Capacitor 인스턴스 생성 (설정 검증 포함)
     */
    static create(pkgPath: string, config: SdCapacitorConfig, exclude?: string[]): Promise<Capacitor>;
    /**
     * 설정 검증
     */
    private static _validateConfig;
    /**
     * Capacitor 프로젝트 초기화
     *
     * 1. package.json 생성 및 의존성 설치
     * 2. capacitor.config.ts 생성
     * 3. 플랫폼 추가 (android)
     * 4. Android 네이티브 설정 구성
     * 5. cap sync 또는 cap copy 실행
     */
    initialize(): Promise<void>;
    /**
     * Capacitor CLI 명령어를 pnpm exec로 실행
     */
    private _execCap;
    /**
     * 명령어 실행
     */
    private _exec;
    /**
     * 동시 실행 방지 잠금 획득
     */
    private _acquireLock;
    /**
     * 동시 실행 방지 잠금 해제
     */
    private _releaseLock;
    /**
     * 외부 도구 검증 (Java 21, Android SDK)
     */
    private _validateTools;
    /**
     * 플랫폼 추가 (멱등성: 이미 존재하면 스킵)
     */
    private _addPlatforms;
    /**
     * 기기에서 앱을 실행한다 (개발 모드).
     *
     * 1. capacitor.config.ts에 server.url 설정 (Hot Reload용)
     * 2. cap copy — 웹 에셋 동기화
     * 3. cap run — 기기에서 앱 실행
     */
    run(url: string, extraReversePorts?: number[]): Promise<void>;
    /**
     * Capacitor 프로덕션 빌드 (APK/AAB 생성)
     *
     * 1. cap copy (웹 에셋 → 네이티브 프로젝트 동기화)
     * 2. 서명 설정 (sign 설정 있을 때)
     * 3. Gradle 빌드 (APK 또는 AAB)
     * 4. 빌드 산출물 복사
     */
    build(outPath: string): Promise<void>;
}
//# sourceMappingURL=capacitor.d.ts.map