import { DecodedTransaction, ExUnits, PlutusData, PreBuildRedeemer, ProtocolParameters, Redeemer, RedeemerEvaluation, TxIn, TxOut, UTxO } from "./types";
export declare class TransactionBuilder {
    private protocolParameters;
    private inputs;
    private referenceInputs;
    private outputs;
    private fee;
    private ttl;
    private collateralInputs;
    private requiredSigners;
    private redeemers;
    private preBuildRedeemers;
    private plutusV1Scripts;
    private plutusV2Scripts;
    private plutusDatas;
    private vKeyWitnesses;
    private changeAddress;
    private totalCollateral;
    private metadata;
    /**
     * Initialize a transaction builder.
     *
     * @param protocolParameters The protocol pameters of the current epoch.
     * Important: default values should not be used in production.
     */
    constructor(protocolParameters?: ProtocolParameters);
    setInputs(inputs: UTxO[]): void;
    setReferenceInputs(inputs: TxIn[]): void;
    setOutputs(outputs: TxOut[]): void;
    setTtl(ttl: number): void;
    setCollateralInputs(collateralInputs: UTxO[]): void;
    setProtocolParameters(protocolParameters: ProtocolParameters): void;
    setRequiredSigners(requiredSigners: string[]): void;
    setChangeAddress(address: string | null): void;
    setFee(fee: number): void;
    calculateFee(): void;
    private buildRedeemers;
    setRedeemers(redeemers: PreBuildRedeemer[]): void;
    setPlutusDatas(plutusDatas: PlutusData[]): void;
    setEncodedVKeyWitnesses(cborVkeyWitness: string): void;
    setPlutusV2Scripts(scripts: string[]): void;
    setPlutusV1Scripts(scripts: string[]): void;
    setMetadataMsg(messages: string[]): void;
    setMetadataPublicLabel(label: number, value: Map<string, string[]>): void;
    getRedeemers(): Redeemer[];
    buildBody(): Map<number, unknown>;
    buildWitnessSet(): Map<number, unknown>;
    build(isValid?: boolean): DecodedTransaction;
    evaluateRedeemerByTxIn(txIn: TxIn, exUnits: ExUnits): void;
    evaluateRedeemerByTagIndex(tag: number, index: number, exUnits: ExUnits): void;
    setRedeemerEvaluations(evaluations: RedeemerEvaluation[]): void;
    serialize(): string;
    serializeBody(): string;
}
//# sourceMappingURL=transactionBuilder.d.ts.map