import { Task } from 'dockerode';
import { DeployConfigDto, InfoDto, LogDto } from '@dto';
import { BaseStrategy } from './base.strategy';
import { Logger } from '@twg-group/nestjs-logger';
export interface SwarmTaskExtended extends Task {
    Status?: {
        State?: 'running' | 'failed' | 'complete' | 'shutdown';
        Error?: string;
        Timestamp?: string;
        ContainerStatus?: {
            ContainerID: string;
        };
    };
}
export declare class SwarmStrategy extends BaseStrategy {
    protected logger: Logger;
    private readonly docker;
    constructor(logger: Logger);
    start(id: string): Promise<void>;
    stop(id: string, timeout?: number): Promise<void>;
    private createPortConfigs;
    private createMounts;
    private formatEnvironment;
    deploy(config: DeployConfigDto): Promise<string>;
    private formatServiceInfo;
    list(): Promise<InfoDto[]>;
    remove(serviceId: string): Promise<void>;
    logs(id: string, since?: string, tail?: number): Promise<LogDto[]>;
}
