/**
 * local preview server의 실행 상태와 접근 가능 여부를 점검하는 파일이다.
 * 서버 시작/종료 대기와 중복 프로세스 정리에 필요한 최소 헬스체크 로직만 제공한다.
 */
import type { LocalServerListeningProcess } from './paths';
import type { StoragePaths, TraceLogger } from '../../../../platform/core/types';
/**
 * @description
 * 주어진 포트를 리슨 중인 프로세스 PID를 찾는다.
 * @param port 확인할 포트
 * @returns PID 또는 undefined
 */
export declare function findListeningProcessId(port: number): number | undefined;
/**
 * @description
 * PID에 해당하는 프로세스의 현재 작업 디렉터리를 조회한다.
 * @param pid 조회할 프로세스 PID
 * @returns 작업 디렉터리 절대 경로 또는 undefined
 */
export declare function getProcessCurrentWorkingDirectory(pid: number): string | undefined;
/**
 * @description
 * 로컬 프리뷰 서버가 사용할 포트 후보 목록을 반환한다.
 * @param startPort 검색 시작 포트
 * @returns 검사 대상 포트 배열
 */
export declare function getLocalServerPortCandidates(startPort?: number): number[];
/**
 * @description
 * local-server 디렉터리에서 실행 중인 프리뷰 프로세스를 포트 범위 기준으로 수집한다.
 * @param directoryPath local-server 디렉터리 경로
 * @returns 실행 중인 프리뷰 프로세스 목록
 */
export declare function findLocalServerListeningProcesses(directoryPath: string): LocalServerListeningProcess[];
/**
 * @description
 * Storybook index 엔드포인트 URL을 만든다.
 * @param port local Storybook 포트
 * @returns index.json URL
 */
export declare function getHealthUrl(port: number): string;
/**
 * @description
 * HTTP JSON 응답을 받아 파싱한다.
 * @param url 요청 URL
 * @returns JSON 값 또는 undefined
 */
export declare function requestJson<T>(url: string): Promise<T | undefined>;
/**
 * @description
 * 포트가 실제로 비어 있는지 확인한다.
 * @param port 확인할 포트
 * @returns 사용 가능 여부
 */
export declare function isPortAvailable(port: number): Promise<boolean>;
/**
 * @description
 * 선호 포트부터 순차적으로 비어 있는 포트를 찾는다.
 * @param startPort 검색 시작 포트
 * @returns 사용 가능한 포트
 */
export declare function findAvailablePort(startPort: number): Promise<number>;
/**
 * @description
 * Storybook base URL을 만든다.
 * @param port Storybook 포트
 * @returns base URL
 */
export declare function getLocalServerBaseUrl(port: number): string;
/**
 * @description
 * 새로 띄운 Storybook이 준비될 때까지 대기한다.
 * @param options 시작 포트
 */
export declare function waitUntilServerIsReady(options: {
    /**
     * 준비 완료를 기다릴 local preview server 포트다.
     */
    port: number;
}): Promise<void>;
/**
 * @description
 * 포트가 비어 있을 때까지 대기한다.
 * @param port 확인할 포트
 */
export declare function waitUntilServerStops(port: number): Promise<void>;
/**
 * @description
 * 프로세스를 정상 종료 시도한다.
 * @param pid 종료할 PID
 */
export declare function terminateLocalServerProcess(pid: number): void;
/**
 * @description
 * 프로세스를 강제 종료한다.
 * @param pid 종료할 PID
 */
export declare function forceTerminateLocalServerProcess(pid: number): void;
/**
 * @description
 * local-server 디렉터리에서 떠 있는 중복 또는 레거시 프리뷰 프로세스를 정리한다.
 * @param options 정리 옵션
 */
export declare function cleanupDuplicateLocalServerProcesses(options: {
    /**
     * 작업 디렉터리 기준 저장 경로 집합
     */
    paths: StoragePaths;
    /**
     * 실행 흐름 추적 로거
     */
    trace: TraceLogger;
}): Promise<void>;
//# sourceMappingURL=health.d.ts.map