import { RenVMProvider } from "@renproject/provider";
import { Chain, ChainTransactionProgress, InputType, OutputType, TxSubmitter, TxWaiter } from "@renproject/utils";
import { TransactionParams } from "./params";
import { RenVMCrossChainTxSubmitter } from "./renVMTxSubmitter";
import { defaultRenJSConfig, RenJSConfig } from "./utils/config";
/**
 * A GatewayTransaction handles a specific bridging transaction through RenVM.
 * It includes an input chain transaction that should have already been
 * submitted, a RenVM transaction, and an output chain transaction.
 * Additionally, there may be some setup transactions required to be submitted
 * before the output transaction.
 */
export declare class GatewayTransaction<ToPayload extends {
    chain: string;
    txConfig?: any;
} = {
    chain: string;
}> {
    /** The parameters passed in when calling [[RenJS.lockAndMint]]. */
    params: TransactionParams<ToPayload>;
    /**
     * `txHash` returns the RenVM transaction hash, which is distinct from the
     * chain transaction hashes. It can be used to query the transaction details
     * from RenVM once they've been submitted.
     *
     * The RenVM txHash is a URL-base64 string.
     *
     * ```ts
     * tx.hash;
     * // > "QNM87rNDuxx54H7VK7D_NAU0u_mjk09-G25IJZL1QrI"
     * ```
     */
    private _hash;
    get hash(): string;
    selector: string;
    provider: RenVMProvider;
    fromChain: Chain;
    toChain: Chain;
    nHash: Uint8Array;
    pHash: Uint8Array;
    gHash: Uint8Array;
    _config: typeof defaultRenJSConfig & RenJSConfig;
    in: TxSubmitter | TxWaiter;
    renVM: RenVMCrossChainTxSubmitter;
    outSetup: {
        [key: string]: TxSubmitter | TxWaiter;
    };
    out: TxSubmitter<ChainTransactionProgress, ToPayload["txConfig"]> | TxWaiter;
    private queryTxResult;
    inputType: InputType | undefined;
    outputType: OutputType | undefined;
    /** @hidden */
    constructor(renVM: RenVMProvider, fromChain: Chain, toChain: Chain, params: TransactionParams<ToPayload>, fromTxWaiter?: TxSubmitter<ChainTransactionProgress> | TxWaiter, config?: RenJSConfig);
    /** @hidden */
    initialize: () => Promise<this>;
    /** PRIVATE METHODS */
    private _defaultGetter;
}
//# sourceMappingURL=gatewayTransaction.d.ts.map