///
import { PackStructType, TypedPackValue } from "./pack/pack";
import { RenVMType, RenVMValue } from "./value";
export interface TransactionInput {
hash: string;
version: string;
selector: string;
in: Input;
}
export interface TransactionOutput extends TransactionInput {
hash: string;
out: Output;
}
export interface RPCValue {
t: Types;
v: Values;
}
export declare type EmptyRPCStruct = RPCValue<{
struct: [];
}, {}>;
export declare const burnParamsType: PackStructType;
export declare type BurnParams = RPCValue;
to: RenVMValue;
nonce: RenVMValue;
}>;
export declare type BurnTransactionInput = TransactionInput;
export declare const mintParamsType: () => PackStructType;
export declare type MintParams = RPCValue;
ghash: RenVMValue;
gpubkey: RenVMValue;
nhash: RenVMValue;
nonce: RenVMValue;
payload: RenVMValue;
phash: RenVMValue;
to: RenVMValue;
txid: RenVMValue;
txindex: RenVMValue;
}>;
export declare type MintTransactionInput = TransactionInput;
export declare const submitGatewayType: () => PackStructType;
export declare type SubmitGateway = RPCValue;
ghash: RenVMValue;
gpubkey: RenVMValue;
nhash: RenVMValue;
nonce: RenVMValue;
payload: RenVMValue;
phash: RenVMValue;
to: RenVMValue;
txid: RenVMValue;
txindex: RenVMValue;
}>;
export interface SubmitGatewayInput {
version: string;
selector: string;
in: SubmitGateway;
}
export declare const hashTransaction: (version: string, selector: string, packValue: TypedPackValue) => Buffer;