import { NatsContext, RpcException } from '@nestjs/microservices';
import { Observable } from 'rxjs';
export interface TakeNTradeRPCError {
    success: boolean;
    subject: string | null;
    message: string;
    statusCode: number;
    errors: string[];
    timestamp: string;
}
export declare class TakeNTradeRpc {
    /**
     * Wraps a promise returned by an RPC request handler.
     * @param promise - A Promise resolving to the response value.
     * @param ctx - Optional NatsContext object.
     */
    static handleRequest<V>(promise: Promise<V>, ctx?: NatsContext): Promise<V | RpcException>;
    /**
     * Handles errors from an RPC request handler and returns a TakeNTradeRPCError wrapped in RpcException.
     * @param err - Error to be handled.
     * @param ctx - A NATS Context.
     */
    static handleRequestError(err: unknown, ctx: NatsContext): RpcException;
    private static catch;
    /**
     * Handles NATS request response.
     * @param obs - An instance of an Observable.
     */
    static withReply<V>(obs: Observable<V>): Promise<V>;
}
export declare class TakeNTradeRpcV2 {
    /**
     * Wraps a promise returned by an RPC request handler.
     * @param promise - A Promise resolving to the response value.
     * @param ctx - Optional NatsContext object.
     */
    static handleRequest<V>(promise: Promise<V>, ctx?: NatsContext): Promise<V | TakeNTradeRPCError>;
    /**
     * Handles errors from an RPC request handler and returns a TakeNTradeRPCError.
     * @param err - Error to be handled.
     * @param ctx - A NATS Context.
     */
    static handleRequestError(err: unknown, ctx: NatsContext): TakeNTradeRPCError;
    private static catch;
    /**
     * Handles NATS request response.
     * @param obs - An instance of an Observable.
     */
    static withReply<V>(obs: Observable<V>): Promise<V>;
}
