import { IDeploymentParameters, IInteractionParameters } from '../interfaces/ITransactionParameters.js';
import { UTXO } from '../../utxo/interfaces/IUTXO.js';
import { DeploymentResult, InteractionResponse } from '../TransactionFactory';
import { ICustomTransactionParameters } from '../builders/CustomScriptTransaction.js';
export type InteractionParametersWithoutSigner = Omit<IInteractionParameters, 'signer' | 'preimage'>;
export type IDeploymentParametersWithoutSigner = Omit<IDeploymentParameters, 'signer' | 'network' | 'preimage'>;
export type CustomTransactionWithoutSigner = Omit<ICustomTransactionParameters, 'signer' | 'preimage'>;
export interface BroadcastTransactionOptions {
    raw: string;
    psbt: boolean;
}
export interface BroadcastedTransaction {
    readonly success: boolean;
    readonly result?: string;
    readonly error?: string;
    readonly peers?: number;
}
export interface Web3Provider {
    signInteraction(interactionParameters: InteractionParametersWithoutSigner): Promise<InteractionResponse>;
    signAndBroadcastInteraction(interactionParameters: InteractionParametersWithoutSigner): Promise<[BroadcastedTransaction, BroadcastedTransaction, UTXO[], string]>;
    deployContract(params: IDeploymentParametersWithoutSigner): Promise<DeploymentResult>;
    broadcast(transactions: BroadcastTransactionOptions[]): Promise<BroadcastedTransaction[]>;
}
