import type { WrapperConfig } from './config.js';
declare const DOCKER_IMAGE = "leapable/ocr-provenance-mcp";
declare const MODELS_IMAGE = "leapable/ocr-provenance-models";
export declare function checkDocker(): void;
export declare function pullImage(tag: string): void;
export declare function isImageAvailable(tag: string): boolean;
/**
 * Ensure the models base image is available locally.
 * The app image is FROM the models image, so Docker layer caching means
 * subsequent pulls of the app image only download new app layers (~500MB).
 * The models image layers (~24GB) are downloaded once and cached.
 */
export declare function pullModelsImage(modelsTag: string): void;
export declare function isModelsImageAvailable(modelsTag: string): boolean;
export declare function isContainerRunning(): boolean;
export declare function startContainer(config: WrapperConfig): void;
export declare function stopContainer(): void;
export declare function removeContainer(): void;
export interface ContainerStatus {
    running: boolean;
    health: string;
    uptime: string;
}
export declare function getContainerStatus(): ContainerStatus | null;
export declare function getContainerLogs(lines: number): string;
export declare function healthCheck(port?: number): {
    status: string;
    tools: number;
} | null;
/**
 * Bridge MCP stdio to the running container's HTTP /mcp endpoint.
 * Guarantees all 3 services (MCP, license, dashboard) are running.
 *
 * Flow: AI client stdin -> JSON-RPC -> HTTP POST /mcp -> response -> stdout
 *
 * If the container is not running, auto-starts it with the full entrypoint.
 * Container persists with --restart=unless-stopped -- no ephemeral containers.
 */
export declare function serveHttpBridge(config: WrapperConfig): void;
export { DOCKER_IMAGE, MODELS_IMAGE };
//# sourceMappingURL=docker.d.ts.map