export type DeployType = 'k3s' | 'docker'; export type ConfigState = 'missing' | 'file' | 'directory' | 'unknown'; export type EnvState = 'missing' | 'exists' | 'unknown'; export type ServiceState = 'running' | 'stopped' | 'unknown'; export type ProjectState = 'missing' | 'exists' | 'unknown'; export type ConfigSource = 'interactive' | 'repo_values'; export interface DeployInfo { ip: string; deploy_type: DeployType; missing_file: string; missing_env_cmd: string; config_path?: string; config_state?: ConfigState; env_cmd?: string; env_state?: EnvState; service_state?: ServiceState; include_ok?: boolean; namespace?: string; release_name?: string; project_state?: ProjectState; k3s_state?: EnvState; helm_state?: EnvState; docker_state?: EnvState; compose_state?: EnvState; compose_file_path?: string; compose_file_state?: ConfigState; needs_port_input?: boolean; port_value?: string; use_health_check?: boolean; config_source?: ConfigSource; repo_values_file?: string; repo_env_values_file?: string; resolved_env?: string; } export interface PollResult { isPaused: boolean; isComplete: boolean; deployInfo?: DeployInfo; buildNumber?: number; buildUrl?: string; buildResult?: 'SUCCESS' | 'FAILURE' | 'ABORTED' | null; } export interface NginxLocationConfig { path: string; proxyPass: string; extraConfig?: string; } export interface RenderConfig { projectName: string; branch: string; nginxPort?: number; apiProxy?: string; apiPath?: string; serverName?: string; rootPath?: string; extraLocations?: NginxLocationConfig[]; skipDefaultApiLocation?: boolean; targetPath?: string; } export interface DeployStep { step: 'branch' | 'building' | 'handling' | 'review' | 'done'; message: string; branches?: string[]; numberedOptions?: string[]; build_url?: string; tasks?: Array<{ name: string; status: 'running' | 'done' | 'failed' | 'pending'; }>; selected?: { project?: string; branch?: string; server?: string; instance?: string; }; preview?: string; target_path?: string; next_action?: string; }