/**
 * @fileoverview Effect-based Blockfrost provider functions
 * Internal module implementing all provider operations using Effect pattern
 */
import { Effect } from "effect";
import * as CoreAddress from "../../../Address.js";
import * as Credential from "../../../Credential.js";
import * as PlutusData from "../../../Data.js";
import * as DatumHash from "../../../DatumHash.js";
import type * as RewardAddress from "../../../RewardAddress.js";
import * as Transaction from "../../../Transaction.js";
import * as TransactionHash from "../../../TransactionHash.js";
import type * as TransactionInput from "../../../TransactionInput.js";
import * as CoreUTxO from "../../../UTxO.js";
import type * as Provider from "../Provider.js";
/**
 * Get protocol parameters from Blockfrost API
 * Returns: (baseUrl, projectId?) => Effect<ProtocolParameters, ProviderError>
 */
export declare const getProtocolParameters: (baseUrl: string, projectId?: string) => Effect.Effect<Provider.ProtocolParameters, Provider.ProviderError, never>;
/**
 * Get UTxOs for an address or credential with pagination support
 * Fetches reference scripts and resolves datum hashes for complete UTxO data
 * Returns: (baseUrl, projectId?) => (addressOrCredential) => Effect<UTxO[], ProviderError>
 */
export declare const getUtxos: (baseUrl: string, projectId?: string) => (addressOrCredential: CoreAddress.Address | Credential.Credential) => Effect.Effect<CoreUTxO.UTxO[], Provider.ProviderError, never>;
/**
 * Get UTxOs with a specific unit (asset) with pagination support
 * Fetches reference scripts and resolves datum hashes for complete UTxO data
 * Returns: (baseUrl, projectId?) => (addressOrCredential, unit) => Effect<UTxO[], ProviderError>
 */
export declare const getUtxosWithUnit: (baseUrl: string, projectId?: string) => (addressOrCredential: CoreAddress.Address | Credential.Credential, unit: string) => Effect.Effect<CoreUTxO.UTxO[], Provider.ProviderError, never>;
/**
 * Get UTxO by unit (first occurrence)
 * Fetches reference script and resolves datum for complete UTxO data
 * Returns: (baseUrl, projectId?) => (unit) => Effect<UTxO, ProviderError>
 */
export declare const getUtxoByUnit: (baseUrl: string, projectId?: string) => (unit: string) => Effect.Effect<CoreUTxO.UTxO, Provider.ProviderError, never>;
/**
 * Get UTxOs by transaction inputs (output references)
 * Returns: (baseUrl, projectId?) => (inputs) => Effect<UTxO[], ProviderError>
 */
export declare const getUtxosByOutRef: (baseUrl: string, projectId?: string) => (inputs: ReadonlyArray<TransactionInput.TransactionInput>) => Effect.Effect<CoreUTxO.UTxO[], Provider.ProviderError, never>;
/**
 * Get delegation information for a reward address
 * Returns: (baseUrl, projectId?) => (rewardAddress) => Effect<Delegation, ProviderError>
 */
export declare const getDelegation: (baseUrl: string, projectId?: string) => (rewardAddress: RewardAddress.RewardAddress) => Effect.Effect<Provider.Delegation, Provider.ProviderError, never>;
/**
 * Get datum by hash
 * Returns: (baseUrl, projectId?) => (datumHash) => Effect<PlutusData, ProviderError>
 */
export declare const getDatum: (baseUrl: string, projectId?: string) => (datumHash: DatumHash.DatumHash) => Effect.Effect<bigint | PlutusData.Constr | Map<PlutusData.Data, PlutusData.Data> | readonly PlutusData.Data[] | Uint8Array<ArrayBufferLike>, Provider.ProviderError, never>;
/**
 * Await transaction confirmation
 * Returns: (baseUrl, projectId?) => (txHash, checkInterval?) => Effect<boolean, ProviderError>
 */
export declare const awaitTx: (baseUrl: string, projectId?: string) => (txHash: TransactionHash.TransactionHash, checkInterval?: number, timeout?: number) => Effect.Effect<boolean, Provider.ProviderError, never>;
/**
 * Submit transaction
 * Returns: (baseUrl, projectId?) => (tx) => Effect<TransactionHash, ProviderError>
 */
export declare const submitTx: (baseUrl: string, projectId?: string) => (tx: Transaction.Transaction) => Effect.Effect<TransactionHash.TransactionHash, Provider.ProviderError, never>;
/**
 * Evaluate transaction
 * Returns: (baseUrl, projectId?) => (tx, additionalUTxOs?) => Effect<EvalRedeemer[], ProviderError>
 */
export declare const evaluateTx: (baseUrl: string, projectId?: string) => (tx: Transaction.Transaction, additionalUTxOs?: Array<CoreUTxO.UTxO>) => Effect.Effect<import("../../EvalRedeemer.js").EvalRedeemer[], Provider.ProviderError, never>;
//# sourceMappingURL=BlockfrostEffect.d.ts.map