import { EventEmitter } from 'events';
import { CommandType } from '../tcp/types/command.types';
import { AxioDBCloudOptions, ConnectionState } from './types/client.types';
import DatabaseProxy from './DatabaseProxy';
/**
 * AxioDBCloud - TCP Client for remote AxioDB access
 */
export declare class AxioDBCloud extends EventEmitter {
    private host;
    private port;
    private socket;
    private messageBuffer;
    private pendingRequests;
    private connectionState;
    private options;
    private reconnectAttempt;
    private heartbeatInterval;
    constructor(connectionString: string, options?: AxioDBCloudOptions);
    /**
     * Parse connection string: axiodb://host:port
     */
    private parseConnectionString;
    /**
     * Connect to AxioDB TCP server
     */
    connect(): Promise<void>;
    /**
     * Setup socket event handlers
     */
    private setupSocketHandlers;
    /**
     * Handle server response
     */
    private handleResponse;
    /**
     * Handle disconnection
     */
    private handleDisconnection;
    /**
     * Attempt to reconnect
     */
    private attemptReconnect;
    /**
     * Start heartbeat
     */
    private startHeartbeat;
    /**
     * Stop heartbeat
     */
    private stopHeartbeat;
    /**
     * Send command to server
     */
    sendCommand(command: CommandType, params: any): Promise<any>;
    /**
     * Disconnect from server
     */
    disconnect(): Promise<void>;
    /**
     * Database API - mirrors AxioDB
     */
    createDB(name: string): Promise<DatabaseProxy>;
    deleteDatabase(name: string): Promise<void>;
    isDatabaseExists(name: string): Promise<boolean>;
    getInstanceInfo(): Promise<any>;
    /**
     * Get current connection state
     */
    get state(): ConnectionState;
    /**
     * Check if connected
     */
    get isConnected(): boolean;
}
