import { MatrixActor } from '../../core/MatrixActor';
import type { INodeInfo } from './INodeInfo';
/**
 * Derive sibling VLM component mounts from own mount.
 * E.g., if at "flowpad.vlm-router", siblings are:
 *   - router: flowpad.vlm-router
 *   - join: flowpad.vlm-join
 *   - atomizer: flowpad.vlm-atomizer
 *   - eval: flowpad.vlm-eval
 *   - nodePrefix: flowpad.vlm-node-
 */
export declare function getVLMNamespace(mount: string): {
    router: string;
    join: string;
    atomizer: string;
    eval: string;
    nodePrefix: string;
};
/**
 * VLMRouter - Manages bootstrap node pool
 *
 * Responsibilities:
 * - Node registration and health monitoring
 * - Round-robin load balancing
 * - Heartbeat tracking
 *
 * Mount: {namespace}.vlm-router
 */
export declare class VLMRouter extends MatrixActor {
    static accepts: {
        register: {
            nodeId: string;
            mount: string;
        };
        unregister: {
            nodeId: string;
        };
        getNode: {};
        getNodes: {
            count: string;
        };
        heartbeat: {
            nodeId: string;
            load: string;
        };
        listNodes: {};
    };
    static emits: {
        nodeRegistered: {
            nodeId: string;
            mount: string;
            totalNodes: string;
        };
        nodeUnregistered: {
            nodeId: string;
        };
        noNodesAvailable: {};
    };
    private _nodes;
    private _roundRobin;
    protected _ns: ReturnType<typeof getVLMNamespace>;
    protected onBootstrap(): Promise<void>;
    onRegister(params: {
        nodeId: string;
        mount: string;
    }): Promise<{
        success: boolean;
    }>;
    onUnregister(params: {
        nodeId: string;
    }): Promise<void>;
    onHeartbeat(params: {
        nodeId: string;
        load?: number;
    }): Promise<void>;
    onGetNode(): Promise<{
        mount: string;
    } | null>;
    onGetNodes(params: {
        count: number;
    }): Promise<{
        mounts: string[];
    }>;
    onListNodes(): Promise<{
        nodes: INodeInfo[];
    }>;
    private _getHealthyNodes;
}
//# sourceMappingURL=VLMRouter.d.ts.map