import { k as InitializeSingleReleaseEscrowPayload, l as InitializeMultiReleaseEscrowPayload, j as EscrowType, E as EscrowRequestResponse, e as SendTransactionResponse, I as InitializeSingleReleaseEscrowResponse, f as InitializeMultiReleaseEscrowResponse, y as GetEscrowFromIndexerByContractIdsParams, h as GetEscrowsFromIndexerResponse, t as UpdateSingleReleaseEscrowPayload, u as UpdateMultiReleaseEscrowPayload, m as SingleReleaseStartDisputePayload, n as MultiReleaseStartDisputePayload, o as SingleReleaseResolveDisputePayload, p as MultiReleaseResolveDisputePayload, W as WithdrawRemainingFundsPayload, v as GetBalanceParams, G as GetEscrowBalancesResponse, r as SingleReleaseReleaseFundsPayload, s as MultiReleaseReleaseFundsPayload, q as FundEscrowPayload, C as ChangeMilestoneStatusPayload, A as ApproveMilestonePayload, w as GetEscrowsFromIndexerBySignerParams, x as GetEscrowsFromIndexerByRoleParams, z as UpdateFromTxHashPayload, B as UpdateFromTxHashResponse } from '../index-BevLVLv1.js';

/**
 * Use the useInitializeEscrow hook to initialize an escrow.
 * @returns A function to initialize an escrow.
 */
declare function useInitializeEscrow(): {
    deployEscrow: (payload: InitializeSingleReleaseEscrowPayload | InitializeMultiReleaseEscrowPayload, type: EscrowType) => Promise<EscrowRequestResponse>;
};

/**
 * Use the useSendTransaction hook to send a transaction by signing it with the user's private key.
 * @returns A function to send a transaction.
 */
declare function useSendTransaction(): {
    sendTransaction: (signedXdr: string) => Promise<SendTransactionResponse | InitializeSingleReleaseEscrowResponse | InitializeMultiReleaseEscrowResponse>;
};

/**
 * Use the useGetEscrowFromIndexerByContractId hook to get an escrow from the database by contractId.
 * @returns A function to get an escrow from the database by contractId.
 */
declare function useGetEscrowFromIndexerByContractIds(): {
    getEscrowByContractIds: (params: GetEscrowFromIndexerByContractIdsParams) => Promise<GetEscrowsFromIndexerResponse[]>;
};

/**
 * Use the useUpdateEscrow hook to update an escrow.
 * @returns A function to update an escrow.
 */
declare function useUpdateEscrow(): {
    updateEscrow: (payload: UpdateSingleReleaseEscrowPayload | UpdateMultiReleaseEscrowPayload, type: EscrowType) => Promise<EscrowRequestResponse>;
};

/**
 * Use the useStartDispute hook to start a dispute.
 * @returns A function to start a dispute.
 */
declare function useStartDispute(): {
    startDispute: (payload: SingleReleaseStartDisputePayload | MultiReleaseStartDisputePayload, type: EscrowType) => Promise<EscrowRequestResponse>;
};

/**
 * Use the useResolveDispute hook to resolve a dispute.
 * @returns A function to resolve a dispute.
 */
declare function useResolveDispute(): {
    resolveDispute: (payload: SingleReleaseResolveDisputePayload | MultiReleaseResolveDisputePayload, type: EscrowType) => Promise<EscrowRequestResponse>;
};

/**
 * Use the useWithdrawRemainingFunds hook to withdraw remaining funds.
 * @returns A function to withdraw remaining funds.
 */
declare function useWithdrawRemainingFunds(): {
    withdrawRemainingFunds: (payload: WithdrawRemainingFundsPayload) => Promise<EscrowRequestResponse>;
};

/**
 * Use the useGetMultipleEscrowBalances hook to get multiple escrow balances.
 * @returns A function to get multiple escrow balances.
 */
declare function useGetMultipleEscrowBalances(): {
    getMultipleBalances: (payload: GetBalanceParams) => Promise<GetEscrowBalancesResponse[]>;
};

/**
 * Use the useReleaseFunds hook to release funds from an escrow.
 * @returns A function to release funds from an escrow.
 */
declare function useReleaseFunds(): {
    releaseFunds: (payload: SingleReleaseReleaseFundsPayload | MultiReleaseReleaseFundsPayload, type: EscrowType) => Promise<EscrowRequestResponse>;
};

/**
 * Use the useFundEscrow hook to fund an escrow.
 * @returns A function to fund an escrow.
 */
declare function useFundEscrow(): {
    fundEscrow: (payload: FundEscrowPayload, type: EscrowType) => Promise<EscrowRequestResponse>;
};

/**
 * Use the useChangeMilestoneStatus hook to change the status of a milestone.
 * @returns A function to change the status of a milestone.
 */
declare function useChangeMilestoneStatus(): {
    changeMilestoneStatus: (payload: ChangeMilestoneStatusPayload, type: EscrowType) => Promise<EscrowRequestResponse>;
};

/**
 * Use the useApproveMilestone hook to change the approved flag of a milestone.
 * @returns A function to change the approved flag of a milestone.
 */
declare function useApproveMilestone(): {
    approveMilestone: (payload: ApproveMilestonePayload, type: EscrowType) => Promise<EscrowRequestResponse>;
};

/**
 * Use the useGetEscrowsFromIndexerBySigner hook to get multiple escrows from the database by signer.
 * @returns A function to get multiple escrows from the database by signer.
 */
declare function useGetEscrowsFromIndexerBySigner(): {
    getEscrowsBySigner: (params: GetEscrowsFromIndexerBySignerParams) => Promise<GetEscrowsFromIndexerResponse[]>;
};

/**
 * Use the useGetEscrowsFromIndexerByRole hook to get multiple escrows from the database by role.
 * @returns A function to get multiple escrows from the database by role.
 */
declare function useGetEscrowsFromIndexerByRole(): {
    getEscrowsByRole: (params: GetEscrowsFromIndexerByRoleParams) => Promise<GetEscrowsFromIndexerResponse[]>;
};

/**
 * Hook to update escrow information from a transaction hash
 * @returns A function to call the update-from-tx-hash endpoint
 */
declare function useUpdateFromTxHash(): {
    updateFromTxHash: (payload: UpdateFromTxHashPayload) => Promise<UpdateFromTxHashResponse>;
};

export { useApproveMilestone, useChangeMilestoneStatus, useFundEscrow, useGetEscrowFromIndexerByContractIds, useGetEscrowsFromIndexerByRole, useGetEscrowsFromIndexerBySigner, useGetMultipleEscrowBalances, useInitializeEscrow, useReleaseFunds, useResolveDispute, useSendTransaction, useStartDispute, useUpdateEscrow, useUpdateFromTxHash, useWithdrawRemainingFunds };
