import { DogeNetworkId } from "../../networks/types"; import { IDogeLinkElectrsRPC } from "../../rpc/electrsTypes"; import { IDogeLinkRPC } from "../../rpc/types"; import { Transaction } from "../../transaction"; import { TransactionBuilder } from "../../transaction/builder"; import { ITransactionOutputAddress } from "../../transaction/types"; import { IDogeTransactionSigner } from "../../wallet/types"; import { ICreateP2PKHParams, IP2PKHFundingUTXO } from "../p2pkh/types"; type TTxidOrUTXO = string | IP2PKHFundingUTXO; type TTxidOrUTXOArray = TTxidOrUTXO | TTxidOrUTXO[]; interface ICreateP2PKHSimpleCoinSelectParamsBase { signer?: IDogeTransactionSigner; address?: string; outputs: ITransactionOutputAddress[]; feeRate: number; inputs?: TTxidOrUTXOArray; rpc?: IDogeLinkRPC | IDogeLinkElectrsRPC; networkId?: DogeNetworkId; } interface ICreateP2PKHSimpleCoinSelectParamsResolved extends ICreateP2PKHSimpleCoinSelectParamsBase { address: string; outputs: ITransactionOutputAddress[]; feeRate: number; inputs: IP2PKHFundingUTXO[]; } interface ICreateP2PKHSimpleCoinSelectParamsRPC extends ICreateP2PKHSimpleCoinSelectParamsBase { outputs: ITransactionOutputAddress[]; feeRate: number; inputs: TTxidOrUTXOArray; rpc: IDogeLinkRPC | IDogeLinkElectrsRPC; signer: IDogeTransactionSigner; } interface ICreateP2PKHSimpleCoinSelectParamsNetworkId extends ICreateP2PKHSimpleCoinSelectParamsBase { outputs: ITransactionOutputAddress[]; feeRate: number; inputs: IP2PKHFundingUTXO[]; rpc: IDogeLinkRPC | IDogeLinkElectrsRPC; networkId: DogeNetworkId; } interface ICreateP2PKHSimpleCoinSelectParamsLinkRPC extends ICreateP2PKHSimpleCoinSelectParamsBase { outputs: ITransactionOutputAddress[]; feeRate: number; inputs?: TTxidOrUTXOArray; rpc: IDogeLinkElectrsRPC; signer: IDogeTransactionSigner; } type ICreateP2PKHSimpleCoinSelectParams = ICreateP2PKHSimpleCoinSelectParamsLinkRPC | ICreateP2PKHSimpleCoinSelectParamsResolved | ICreateP2PKHSimpleCoinSelectParamsRPC | ICreateP2PKHSimpleCoinSelectParamsNetworkId; declare function createP2PKHParamsSimpleCS(params: ICreateP2PKHSimpleCoinSelectParams): Promise; declare function createP2PKHTxBuilderSimpleCS(params: ICreateP2PKHSimpleCoinSelectParams & { signer: IDogeTransactionSigner; }): Promise; declare function createP2PKHTxSimpleCS(params: ICreateP2PKHSimpleCoinSelectParams & { signer: IDogeTransactionSigner; }): Promise; export type { ICreateP2PKHSimpleCoinSelectParams, }; export { createP2PKHParamsSimpleCS, createP2PKHTxBuilderSimpleCS, createP2PKHTxSimpleCS, };