import type { SdBuildPackageConfig, SdClientPackageConfig, SdPackageConfig, SdScriptsPackageConfig, SdServerPackageConfig } from "../sd-config.types";
/**
 * 패키지 config를 순회하며 null 필터링 + target 필터링을 수행한다.
 * 3개 분류 함수(classifyPackages, classifyWatchPackages, classifyDevPackages)의
 * 공통 순회 로직을 추출한 유틸이다.
 */
export declare function iteratePackages(packages: Record<string, SdPackageConfig | undefined>, targets: string[]): Array<{
    name: string;
    config: SdPackageConfig;
}>;
/**
 * targets로 패키지 설정을 필터링한다 (scripts target 제외)
 * @param packages 패키지 설정 맵
 * @param targets 필터링할 패키지명 목록. 빈 배열이면 scripts를 제외한 모든 패키지 반환
 * @returns 필터링된 패키지 설정 맵
 * @internal 테스트용으로 export
 */
export declare function filterPackagesByTargets(packages: Record<string, SdPackageConfig | undefined>, targets: string[]): Record<string, SdPackageConfig>;
export interface WatchClassifiedPackages {
    libraryPackages: Array<{
        name: string;
        dir: string;
        config: SdBuildPackageConfig;
    }>;
    watchHookPackages: Array<{
        name: string;
        dir: string;
        config: SdBuildPackageConfig | SdScriptsPackageConfig;
    }>;
}
/**
 * Watch 모드용 패키지 분류.
 * Watch 모드용 패키지 분류. WatchOrchestrator에서 사용한다.
 */
export declare function classifyWatchPackages(allPackages: Record<string, SdPackageConfig>, cwd: string, pathMap: Map<string, string>): WatchClassifiedPackages;
export interface DevClassifiedPackages {
    serverPackages: Array<{
        name: string;
        dir: string;
        config: SdServerPackageConfig;
    }>;
    clientPackages: Array<{
        name: string;
        dir: string;
        config: SdClientPackageConfig;
    }>;
    serverClientsMap: Map<string, string[]>;
}
/**
 * Dev 모드용 패키지 분류.
 * Dev 모드용 패키지 분류. DevOrchestrator에서 사용한다.
 */
export declare function classifyDevPackages(allPackages: Record<string, SdPackageConfig>, cwd: string, pathMap: Map<string, string>): DevClassifiedPackages;
//# sourceMappingURL=package-classify.d.ts.map