import EventEmitter from 'eventemitter3';
export type DriverSubscriptionResponse = {
    id: string;
    delta: object[];
    tableName: string;
    subscriptionId: string;
};
export declare class SocketConnection extends EventEmitter {
    #private;
    private config;
    constructor(config: {
        baseUrl: string;
        apiKey: string;
        baseId: string;
        timeZone?: string;
        clientId?: string;
    });
    rawRequest<T>(query: string, variables: Record<string, any>, headers?: Record<string, string>, transactionId?: string): Promise<T>;
    subscribe<TResult>(metadatas: any[], callback: (...results: TResult[]) => void): Promise<{
        unsubscribe: () => Promise<void>;
    }>;
    emit(event: string | symbol, ...args: any[]): boolean;
}
