export interface ScaffoldClusterJsonInput { cluster_id: string; project_id: string; org_id: string; cloud_url: string; display_name?: string; } export interface ScaffoldClusterYamlInput { channel?: 'stable' | 'preview'; workers?: number; variant: 'cluster-base' | 'cluster-microservices'; } export interface ScaffoldComposeInput { imageTag: string; clusterId: string; projectId: string; projectName: string; cloudUrl: string; variant: 'cluster-base' | 'cluster-microservices'; deploymentMode?: 'local' | 'cloud'; orgId: string; workers?: number; channel?: 'stable' | 'preview'; repoUrl?: string; claudeConfigMode?: 'bind' | 'volume'; } export interface ScaffoldEnvInput { clusterId: string; clusterName?: string; projectId: string; orgId: string; cloudUrl: string; projectName: string; repoUrl?: string; repoBranch?: string; channel?: 'stable' | 'preview'; workers?: number; orchestratorPort?: number; cloud?: { apiUrl: string; relayUrl: string; }; preApprovedDeviceCode?: string; } /** * Coerce a project name into a valid Docker Compose project name. * * Compose v2 requires the name to match `^[a-z0-9][a-z0-9_-]*$`. We lowercase, * replace illegal characters with `-`, collapse runs, strip leading * non-alphanumerics, and fall back to `generacy-` when nothing * usable remains. */ export declare function sanitizeComposeProjectName(name: string, clusterId: string): string; /** * Derive the WebSocket relay URL from an HTTP cloud URL. * * - `https://api.generacy.ai` → `wss://api.generacy.ai/relay?projectId=` * - `http://localhost:3001` → `ws://localhost:3001/relay?projectId=` */ export declare function deriveRelayUrl(cloudUrl: string, projectId: string): string; /** * Write snake_case cluster.json to the given directory. */ export declare function scaffoldClusterJson(dir: string, input: ScaffoldClusterJsonInput): void; /** * Write minimal cluster.yaml (channel, workers, variant only). */ export declare function scaffoldClusterYaml(dir: string, input: ScaffoldClusterYamlInput): void; /** * Write multi-service docker-compose.yml (orchestrator + worker + redis). */ export declare function scaffoldDockerCompose(dir: string, input: ScaffoldComposeInput): void; /** * Write .env file with identity vars, project vars, and runtime defaults. */ export declare function scaffoldEnvFile(dir: string, input: ScaffoldEnvInput): void; //# sourceMappingURL=scaffolder.d.ts.map