import { RelayerConfig, BuildRelayerTxResponse, BuildRelayerTxParams, SendRelayerTxParams, RelayerResponse, RelayerTxStatus, SendRelayerTxWithWebSocketParams, RelayerWebSocketEvents } from "./utils/Types";
import { IRelayer } from "./interfaces/IRelayer";
export declare class Relayer implements IRelayer {
    readonly relayerConfig: RelayerConfig;
    private relayerUrl;
    private chainId;
    private signer;
    private provider;
    private webSocketManager;
    constructor(relayerConfig: RelayerConfig);
    private getRelayerUrl;
    buildRelayerTx(params: BuildRelayerTxParams): Promise<BuildRelayerTxResponse>;
    buildRelayerTxEIP712(params: BuildRelayerTxParams): Promise<BuildRelayerTxResponse>;
    sendRelayerTx(txParams: SendRelayerTxParams): Promise<RelayerResponse>;
    getRelayerTxStatus(transactionId: string): Promise<RelayerTxStatus>;
    /**
     * Send relayer transaction with real-time updates via WebSocket
     */
    sendRelayerTxWithRealTimeUpdates(params: SendRelayerTxWithWebSocketParams): Promise<RelayerResponse>;
    /**
     * Subscribe to real-time transaction updates
     */
    subscribeToTransaction(transactionId: string, events?: RelayerWebSocketEvents): Promise<void>;
    /**
     * Unsubscribe from transaction updates
     */
    unsubscribeFromTransaction(transactionId: string): void;
    /**
     * Connect to WebSocket server
     */
    connectWebSocket(): void;
    /**
     * Disconnect from WebSocket server
     */
    disconnectWebSocket(): void;
    /**
     * Check if WebSocket is connected
     */
    isWebSocketConnected(): boolean;
    /**
     * Get WebSocket connection information
     */
    getWebSocketInfo(): {
        connected: boolean;
        subscribedTransactions: number;
        url: string;
    };
}
