/** 관리 블록 경계 — 이 사이만 우리가 소유한다. 밖의 내용은 절대 건드리지 않는다 */ export declare const BLOCK_START = "# crosspane:start (auto-generated \u2014 removed when the hub stops)"; export declare const BLOCK_END = "# crosspane:end"; /** * 프로젝트에 맞는 변수 이름. 번들러는 자기 접두사만 클라이언트에 노출하므로 * 틀린 이름을 쓰면 **조용히 undefined가 된다** — 감지 실패 시에는 전부 적는다. * 남는 변수는 해가 없지만, 빠진 변수는 기능이 안 되는 것으로 보인다. */ export declare function envVarNames(packageJson: unknown): string[]; /** 관리 블록을 제거한 내용 — 우리 것만 지우고 사용자의 나머지 줄은 그대로 남긴다 */ export declare function stripManagedBlock(contents: string): string; /** 기존 내용 + 새 관리 블록. 같은 파일에 여러 번 실행해도 블록은 하나만 남는다 */ export declare function renderEnvFile(existing: string, names: string[], url: string): string; /** * 관리 블록 **밖에** 같은 변수가 이미 정의돼 있는지. * * 경고해야 하는 이유: 한 파일에 같은 키가 두 번 있으면 어느 쪽이 이기는지는 로더마다 * 다르다. 조용히 두 줄을 남기면 "주소를 넣었는데 엉뚱한 곳에 붙는" 디버깅 불가능한 * 상태가 된다 — 우리가 덮어쓰지 않고 사람에게 알린다. */ export declare function conflictingNames(existing: string, names: string[]): string[]; export interface WriteEnvResult { path: string; names: string[]; /** 관리 블록 밖의 중복 정의 — 있으면 사람이 손으로 지워야 한다 */ conflicts: string[]; /** * git이 무시하는 파일인지. false면 **토큰이 커밋될 수 있다** — * undefined는 판정 불가(git 저장소가 아님)로, 경고하지 않는다 */ gitignored: boolean | undefined; } /** 허브 주소를 env 파일의 관리 블록에 쓴다. 파일의 나머지 내용은 보존한다 */ export declare function writeEnvFile(filePath: string, url: string): WriteEnvResult; /** * 관리 블록을 지운다 — 허브가 멈추면 그 주소와 토큰은 더 이상 유효하지 않다. * * 남겨 두면 다음 실행에서 **죽은 주소가 루프백 기본값을 덮어써** 에이전트가 조용히 * 아무데도 붙지 않는다. 되돌리기 어려운 실패 모드라 종료 경로에서 반드시 정리한다. * 블록만 지웠는데 파일이 비면 파일 자체를 삭제한다(우리가 만든 파일이었다). */ export declare function clearEnvFile(filePath: string): void;