import type { APIClient } from '../api.ts';
import type { ContainerMetrics, MachineMonitorState, MonitorMessage, MonitorScope, MonitorWebSocketOptions, MonitorWebSocketState } from './types.ts';
export declare const MonitorResponseError: {
    new (args?: ({
        path?: string;
    } & {
        message?: string;
        cause?: unknown;
    }) | undefined): import("../../error.ts").RichError & {
        readonly _tag: "MonitorResponseError";
    } & Readonly<{
        path?: string;
    }>;
    readonly defaultMessage?: string;
};
export declare const MonitorScopeError: {
    new (args?: ({
        scope: string;
    } & {
        message?: string;
        cause?: unknown;
    }) | undefined): import("../../error.ts").RichError & {
        readonly _tag: "MonitorScopeError";
    } & Readonly<{
        scope: string;
    }>;
    readonly defaultMessage?: string;
};
export declare const MonitorWebSocketError: {
    new (args?: ({
        code: "connection_failed" | "auth_failed" | "connection_error" | "max_reconnects_exceeded";
    } & {
        message?: string;
        cause?: unknown;
    }) | undefined): import("../../error.ts").RichError & {
        readonly _tag: "MonitorWebSocketError";
    } & Readonly<{
        code: "connection_failed" | "auth_failed" | "connection_error" | "max_reconnects_exceeded";
    }>;
    readonly defaultMessage?: string;
};
export declare function listMonitorNodes(client: APIClient): Promise<MachineMonitorState[]>;
export declare function getMonitorNode(client: APIClient, machineId: string): Promise<MachineMonitorState>;
export declare function listDistressedNodes(client: APIClient): Promise<MachineMonitorState[]>;
export declare function listMonitorNodeContainers(client: APIClient, machineId: string): Promise<ContainerMetrics[]>;
export declare class MonitorWebSocketClient {
    #private;
    constructor(options: MonitorWebSocketOptions);
    get state(): MonitorWebSocketState;
    connect(): void;
    close(): void;
    updateScope(scope: MonitorScope): void;
}
export declare function subscribeToMonitoring(options: MonitorWebSocketOptions): AsyncGenerator<MonitorMessage, void, unknown>;
//# sourceMappingURL=service.d.ts.map