export interface DeployResult {
    ok: true;
    containerName: string;
    internalHost: string;
    externalUrl: string;
    logsTail: string[];
}
export interface DeployError {
    ok: false;
    error: {
        code: string;
        message: string;
        details?: Record<string, unknown>;
    };
}
export interface DeployScriptArgs {
    employeeSlug: string;
    appSlug: string;
    repoUrl: string;
    runtime: 'node' | 'static';
    branch?: string;
    appId?: string;
    gitToken?: string;
}
export declare class ContainerHostService {
    private readonly logger;
    private readonly sshHost;
    private readonly sshUser;
    private readonly sshKey;
    private readonly deployBinary;
    private readonly appsDomain;
    getContainerLogs(containerName: string, tailLines?: number): Promise<{
        stdout: string;
        truncatedByLineCap: boolean;
    }>;
    buildContainerName(employeeSlug: string, appSlug: string): string;
    destroyContainer(employeeSlug: string, appSlug: string): Promise<{
        ok: true;
    } | {
        ok: false;
        code: string;
        message: string;
    }>;
    runDeployScript(args: DeployScriptArgs): Promise<DeployResult | DeployError>;
    private parseDeployOutput;
    private shellEscape;
    private runHost;
}
