import type { SdBrowserSupportConfig, SdPwaConfig } from "../sd-config.types";
/** Client 빌드 입력 정보 */
export interface ClientBuildInfo {
    name: string;
    cwd: string;
    pkgDir: string;
    /** dev server 포트 (standalone clients with server: number) */
    port?: number;
    /** 빌드 시 치환할 환경변수 */
    env?: Record<string, string>;
    /** 런타임 설정 (dist/.config.json에 기록) */
    configs?: Record<string, unknown>;
    /** PWA 설정. false로 비활성화. 미설정 시 기본값으로 활성화 */
    pwa?: false | SdPwaConfig;
    /** 빌드 출력 경로 (미설정 시 pkgDir/dist) */
    outDir?: string;
    /** base 경로 (미설정 시 /{pkgName}/) */
    base?: string;
    /** 브라우저 지원 설정 (메인 프로세스에서 전달, Worker 내 sd.config.ts 재로드 방지) */
    browserSupport?: SdBrowserSupportConfig;
}
/** Client 빌드 결과 */
export interface ClientBuildResult {
    success: boolean;
    errors?: string[];
    warnings?: string[];
}
/** Worker 이벤트 타입 */
export interface ClientWorkerEvents extends Record<string, unknown> {
    buildStart: Record<string, never>;
    build: ClientBuildResult;
    serverReady: {
        port: number;
    };
    error: {
        message: string;
    };
}
/**
 * 프로덕션 빌드
 */
declare function build(info: ClientBuildInfo): Promise<ClientBuildResult>;
/**
 * dev watch 시작
 */
declare function startWatch(info: ClientBuildInfo): Promise<ClientBuildResult>;
/**
 * dev watch 중지
 */
declare function stopWatch(): Promise<void>;
declare const sender: {
    send<TEventName extends string>(event: TEventName, data?: ClientWorkerEvents[TEventName] | undefined): void;
    __methods: {
        build: typeof build;
        startWatch: typeof startWatch;
        stopWatch: typeof stopWatch;
    };
    __events: ClientWorkerEvents;
};
export default sender;
//# sourceMappingURL=client.worker.d.ts.map