import { JWKInterface } from "arweave/node/lib/wallet";
import { Struct } from "superstruct";
import winston from "winston";
import { BigNumber } from "../../utils";
export declare class ArweaveClient {
    private arweaveJWT;
    private logger;
    private client;
    private gatewayUrl;
    constructor(arweaveJWT: JWKInterface, logger: winston.Logger, gatewayURL?: string, protocol?: string, port?: number);
    set(value: Record<string, unknown>, topicTag?: string | undefined): Promise<string | undefined>;
    get<T>(transactionID: string, validator: Struct<T>): Promise<T | null>;
    getByTopic<T>(tag: string, validator: Struct<T>, originQueryAddress?: string): Promise<{
        data: T;
        hash: string;
    }[]>;
    getMetadata(transactionID: string): Promise<Record<string, string> | null>;
    getAddress(): Promise<string>;
    getBalance(): Promise<BigNumber>;
}
