import { Observable } from "rxjs";
import { IBetterLogger } from "@codiac.io/codiac-common";
import { IContainerServiceClient } from "@codiac.io/codiac-relay-contracts/interfaces";
import { IOutputStyler } from "../ops";
import { CliEnviro } from "../ops/entities";
/**
 * Manages a single version of a Codiac Relay Docker container, ensuring only the specified version runs.
 */
export declare class RelayContainer implements IContainerServiceClient {
    private readonly styler;
    private readonly cliEnviro;
    private readonly logger;
    private readonly projectRoot?;
    private readonly localEntities;
    private readonly config;
    private docker;
    private readonly natsClient;
    private readonly destroySubj;
    private readonly userMessagesSubj;
    private readonly readySubj;
    private readonly readyFailedSubj;
    private readonly connectionRefusedCount;
    silent: boolean;
    get userMessages(): Observable<string | undefined>;
    get ready$(): Observable<boolean>;
    constructor(styler: IOutputStyler, cliEnviro: CliEnviro, logger: IBetterLogger, healthCheckUrl?: string, retryTimeOut?: number, projectRoot?: string | undefined, localEntities?: boolean);
    private instantiateDocker;
    private init;
    private logDebug;
    private logNotice;
    private createLocalDataFolders;
    private checkDockerAvailability;
    private getRunningContainers;
    private handleVersionMismatch;
    private stopAndRemoveContainers;
    private deleteMismatchedImages;
    private pullImage;
    private performHealthCheck;
    private performHttpHealthCheck;
    private performNatsHealthCheck;
    private startContainer;
    private createContainer;
    private startContainerInternal;
    stop(): Observable<boolean>;
    remove(): Observable<boolean>;
    completed(): void;
    destroy(): Observable<boolean>;
}
export declare const DEFAULT_IMAGE_TAG: string;
