import { DeployConfigDto, InfoDto, LogDto } from '@dto';
import { Logger } from '@twg-group/nestjs-logger';
export interface StrategyError extends Error {
    statusCode?: number;
    json?: {
        message?: string;
    };
}
export declare abstract class BaseStrategy {
    protected readonly logger: Logger;
    constructor(logger: Logger);
    abstract start(id: string): Promise<void>;
    abstract stop(id: string, timeout?: number): Promise<void>;
    abstract deploy(config: DeployConfigDto): Promise<string>;
    abstract list(): Promise<InfoDto[]>;
    abstract remove(id: string): Promise<void>;
    abstract logs(id: string, since?: string, tail?: number): Promise<LogDto[]>;
    protected validateConfig(config: DeployConfigDto): void;
    private validatePortUniqueness;
    protected generateName(prefix?: string): string;
    protected handleError(error: unknown, context?: string): never;
}
