import { ContextInput } from '../../context_input';
import { Input } from '../../input';
import { ManaAllotment } from '../../mana-allotment';
import { Output } from '../../output';
import { SlotIndex } from '../../slot';
import { Payload } from '../payload';
/**
 * A transaction.
 */
declare class Transaction {
    /**
     * The unique value denoting whether the block was meant for mainnet, testnet, or a private network.
     */
    readonly networkId: string;
    readonly creationSlot: SlotIndex;
    readonly contextInputs?: ContextInput[];
    readonly inputs: Input[];
    readonly allotments?: ManaAllotment[];
    private capabilities?;
    readonly payload?: Payload;
    readonly outputs: Output[];
    /**
     * @param networkId The ID of the network the transaction was issued to.
     * @param inputs The inputs of the transaction.
     * @param outputs The outputs of the transaction.
     * @param payload An optional Tagged Data payload.
     *
     */
    constructor(networkId: string, creationSlot: SlotIndex, contextInputs: ContextInput[], inputs: Input[], allotments: ManaAllotment[], outputs: Output[], payload?: Payload);
    setCapabilities(capabilities: Uint8Array): void;
    withCapabilities(capabilities: Uint8Array): Transaction;
    /** Get the capability bitflags of the transaction. */
    getCapabilities(): Uint8Array;
}
export { Transaction };
