import { EventEmitter } from 'events';
import type { AgentStatus, Deal } from '../../types/index.js';
export interface HubConfig {
    url: string;
    auth?: {
        type: 'jwt' | 'apikey';
        token: string;
    };
    reconnect?: boolean;
    heartbeatInterval?: number;
}
export declare class HubAdapter extends EventEmitter {
    private ws?;
    private config;
    private connected;
    private reconnectAttempts;
    private maxReconnectAttempts;
    private heartbeatTimer?;
    constructor(config?: Partial<HubConfig>);
    connect(): Promise<void>;
    disconnect(): void;
    listAgents(): Promise<AgentStatus[]>;
    listDeals(): Promise<Deal[]>;
    createDeal(deal: Partial<Deal>): Promise<Deal>;
    submitAction(agentId: string, action: string, data: unknown): Promise<unknown>;
    getAgentLogs(agentId: string, options?: {
        lines?: number;
        follow?: boolean;
    }): Promise<string[]>;
    private sendRequest;
    private handleHubEvent;
    private startHeartbeat;
    private stopHeartbeat;
    private scheduleReconnect;
    private generateRequestId;
    isConnected(): boolean;
    getConnectionStatus(): {
        connected: boolean;
        url: string;
        reconnectAttempts: number;
    };
}
//# sourceMappingURL=hubAdapter.d.ts.map