import type http from 'node:http'; import { type ActorContext } from '../context.js'; import { type AppConfig } from '../schemas.js'; import type { AppConfigEnvStore } from '../services/app-config-env-store.js'; import type { AppConfigFileStore } from '../services/app-config-file-store.js'; import type { AppConfigSecretEnvStore } from '../services/app-config-secret-env-store.js'; import type { ClusterLocalBackend } from '@generacy-ai/credhelper'; export declare function isPathDenied(absPath: string): boolean; /** Read and parse appConfig from the merged cluster.yaml + cluster.local.yaml view. */ export declare function readManifest(): Promise; /** * Readiness-aware manifest read for the cloud bootstrap UI. * * The bare `readManifest()` returns `null` for two different states, which the * cloud UI can't tell apart from a single response: * - the workspace repo hasn't been cloned yet, and * - it's cloned but the app declares no `appConfig`. * The UI therefore has to poll a fixed window (300s) before it can safely show * the empty state. This disambiguates them by the presence of a cluster config * file at the resolved `.generacy` dir: * - `{ ready: false }` — no cluster.yaml / cluster.local.yaml on disk yet * (still cloning). The handler surfaces this as HTTP-200 `null` so the UI * keeps polling, exactly as before. * - `{ ready: true, manifest }` — cloned. `manifest` is the parsed appConfig, * or an empty (but non-null) manifest when the app declares none, so the UI * can advance the instant the clone lands instead of waiting out its window. */ export declare function readManifestState(): Promise<{ ready: false; } | { ready: true; manifest: AppConfig; }>; export declare function setAppConfigStores(envStore: AppConfigEnvStore, fileStore: AppConfigFileStore, backend: ClusterLocalBackend, secretEnvStore?: AppConfigSecretEnvStore): void; export declare function handleGetManifest(_req: http.IncomingMessage, res: http.ServerResponse, _actor: ActorContext, _params: Record): Promise; export declare function handleGetValues(_req: http.IncomingMessage, res: http.ServerResponse, _actor: ActorContext, _params: Record): Promise; export declare function handlePutEnv(req: http.IncomingMessage, res: http.ServerResponse, actor: ActorContext, _params: Record): Promise; export declare function handleDeleteEnv(_req: http.IncomingMessage, res: http.ServerResponse, actor: ActorContext, params: Record): Promise; export declare function handlePostFile(req: http.IncomingMessage, res: http.ServerResponse, actor: ActorContext, params: Record): Promise; //# sourceMappingURL=app-config.d.ts.map