/// <reference types="node" />
import { Tagged } from "cbor";
export declare type ProtocolParameters = {
    min_fee_a: number;
    min_fee_b: number;
    price_mem: number | null;
    price_step: number | null;
    collateral_percent: number | null;
    coins_per_utxo_word: string;
};
export declare type EncodedTxHash = Buffer;
export declare type EncodedPolicyId = Buffer;
export declare type EncodedAssetName = Buffer;
export declare type EncodedAddressHash = Buffer;
export declare type EncodedRequiredSigner = Buffer;
export declare type EncodedValue = [Lovelace, EncodedAssetMap] | Lovelace;
export declare type EncodedAssetMap = Map<EncodedPolicyId, Map<EncodedAssetName, bigint | number>>;
export declare type TxIndex = number;
export declare type Lovelace = bigint | number;
export declare type CborTransaction = string;
export declare type EncodedInput = [EncodedTxHash, TxIndex];
export declare type EncodedRequiredSigners = EncodedRequiredSigner[];
export declare type EncodedOutput = [EncodedAddressHash, EncodedValue] | [EncodedAddressHash, EncodedValue, Buffer];
export declare type EncodedDatum = [number, Buffer | Tagged];
export declare type EncodedSignedData = [Buffer, Map<string, boolean>, Buffer, Buffer];
export declare type PostAlonzoEncodedOutput = Map<number, Buffer | EncodedValue | EncodedDatum>;
export declare enum DatumOption {
    Hash = 0,
    Inline = 1
}
export declare type DecodedUTxO = [EncodedInput, EncodedOutput];
export declare type AssetMap = {
    [policyId: string]: {
        [assetName: string]: bigint;
    };
};
export declare type TxIn = {
    txHash: string;
    txIndex: number;
    hasScript?: boolean | null;
};
export declare type Value = {
    coin: bigint | number;
    assets?: AssetMap | null;
};
export declare type PlutusDataField = {
    bytes?: string | Buffer | null;
    list?: PlutusDataField[] | null;
    map?: Map<unknown, unknown> | null;
    int?: number | null;
    plutusData?: PlutusData | null;
};
export declare type PlutusDataFieldValue = string | Buffer | Map<unknown, unknown> | number | PlutusDataFieldValue[] | Tagged;
export declare type PlutusData = {
    constructor: number;
    fields: PlutusDataField[];
};
export declare type TxOut = {
    address: string;
    value: Value;
    datumInlined?: string | null;
    datumHash?: string | null;
};
export declare type UTxO = {
    txHash: string;
    txIndex: number;
    address: string;
    value: Value;
    datumInlined?: string | null;
    datumHash?: string | null;
};
export declare type AssetValue = {
    unit: string;
    quantity: bigint;
};
export declare type BlockfrostAssetValue = {
    unit: string;
    quantity: bigint | string;
};
export declare enum RedeemerTag {
    Spend = 0,
    Mint = 1,
    Cert = 2,
    Reward = 3
}
export declare type VKeyWitness = [Buffer, Buffer];
export declare type MemUnits = number;
export declare type StepsUnits = number;
export declare type ExUnits = [MemUnits, StepsUnits];
export declare type PreBuildRedeemer = [
    RedeemerTag,
    {
        txHash: string;
        txIndex: number;
    },
    PlutusData,
    ExUnits
];
export declare type Redeemer = [RedeemerTag, number, Tagged, ExUnits];
export declare type RedeemerEvaluation = {
    tag: number;
    index: number;
    memory: number;
    steps: number;
};
export declare type DecodedTransaction = [
    Map<number, unknown>,
    Map<number, unknown>,
    boolean,
    unknown
];
//# sourceMappingURL=types.d.ts.map