import { AnySubscribableQueryBuilder } from './batch-query-builder.js';
import { SocketConnection } from './socket-connection.js';
interface Compilable {
    compile(): {
        query: string;
        variables: Record<string, any>;
    };
}
export declare class Executor {
    #private;
    constructor(baseUrl: string, apiKey: string, baseId: string, transactionId?: string, socketConnection?: SocketConnection);
    getApiKey(): string;
    getBaseId(): string;
    get isInTransaction(): boolean;
    withTransactionId(transactionId: string): Executor;
    execute<T>(builder: Compilable): Promise<T>;
    rawRequest<T>(query: string, variables: Record<string, any>, headers?: Record<string, string>): Promise<T>;
    subscribe<TResult>(builders: AnySubscribableQueryBuilder[], callback: (result: TResult) => void): Promise<{
        unsubscribe: () => Promise<void>;
    }>;
}
export {};
