import { Coin } from "@harmoniclabs/cardano-ledger-ts";
import { CanBeUInteger } from "../utils/ints.js";
import { CborPositiveRational } from "@harmoniclabs/cbor";
import { ExBudget, ExBudgetJson } from "@harmoniclabs/plutus-machine";
import { Rational } from "../utils/Rational.js";
import { CostModels } from "@harmoniclabs/cardano-costmodels-ts";
export interface ValidatedTxBuilderProtocolParams {
    txFeePerByte: bigint;
    txFeeFixed: bigint;
    utxoCostPerByte: bigint;
    maxTxSize: bigint;
    maxTxExecutionUnits: ExBudget;
    maxCollateralInputs: bigint;
    collateralPercentage: bigint;
    minfeeRefScriptCostPerByte: CborPositiveRational;
    executionUnitPrices: [
        mem_price: CborPositiveRational,
        step_price: CborPositiveRational
    ];
    costModels: CostModels;
}
export interface TxBuilderProtocolParams {
    txFeePerByte: CanBeUInteger;
    txFeeFixed: CanBeUInteger;
    utxoCostPerByte: Coin;
    maxTxSize: CanBeUInteger;
    maxTxExecutionUnits: ExBudget | ExBudgetJson;
    maxCollateralInputs: CanBeUInteger;
    collateralPercentage: CanBeUInteger;
    minfeeRefScriptCostPerByte: Rational;
    executionUnitPrices: [
        mem_price: CborPositiveRational,
        step_price: CborPositiveRational
    ] | {
        priceMemory: number;
        priceSteps: number;
    };
    costModels: CostModels;
}
export declare const defaultTxBuilderProtocolParameters: Readonly<ValidatedTxBuilderProtocolParams>;
export declare function isValidatedTxBuilderProtocolParams(stuff: any): stuff is ValidatedTxBuilderProtocolParams;
export declare function completeTxBuilderProtocolParams(partial: TxBuilderProtocolParams | undefined): ValidatedTxBuilderProtocolParams;
