import { Address, Assets, Credential, Datum, DatumHash, Delegation, Lovelace, OutputData, OutRef, ProtocolParameters, Provider, RewardAddress, Transaction, TxHash, Unit, UnixTime, UTxO } from "../types/types.js"; /** Concatentation of txHash + outputIndex */ type FlatOutRef = string; export declare class Emulator implements Provider { ledger: Record; mempool: Record; /** * Only stake key registrations/delegations and rewards are tracked. * Other certificates are not tracked. */ chain: Record; blockHeight: number; slot: number; time: UnixTime; protocolParameters: ProtocolParameters; datumTable: Record; constructor(accounts: { address: Address; assets: Assets; outputData?: OutputData; }[], protocolParameters?: ProtocolParameters); now(): UnixTime; awaitSlot(length?: number): void; awaitBlock(height?: number): void; getUtxos(addressOrCredential: Address | Credential): Promise; getProtocolParameters(): Promise; getDatum(datumHash: DatumHash): Promise; getUtxosWithUnit(addressOrCredential: Address | Credential, unit: Unit): Promise; getUtxosByOutRef(outRefs: OutRef[]): Promise; getUtxoByUnit(unit: string): Promise; getDelegation(rewardAddress: RewardAddress): Promise; awaitTx(txHash: string): Promise; /** * Emulates the behaviour of the reward distribution at epoch boundaries. * Stake keys need to be registered and delegated like on a real chain in order to receive rewards. */ distributeRewards(rewards: Lovelace): void; submitTx(tx: Transaction): Promise; log(): void; } export {};