import { Htlc as OasisHtlc, HtlcStatus } from '@nimiq/oasis-api';
import { AssetAdapter, SwapAsset } from './IAssetAdapter';
export type HtlcDetails = OasisHtlc;
export interface OasisClient {
    getHtlc(id: string): Promise<HtlcDetails>;
    settleHtlc(id: string, secret: string, settlementJWS: string, authorizationToken?: string): Promise<HtlcDetails>;
}
export declare class EuroAssetAdapter implements AssetAdapter<SwapAsset.EUR> {
    client: OasisClient;
    private cancelCallback;
    private stopped;
    constructor(client: OasisClient);
    private findTransaction;
    awaitHtlcFunding(id: string, value: number, data?: string, confirmations?: number, onUpdate?: (htlc: HtlcDetails) => any): Promise<HtlcDetails>;
    fundHtlc(): Promise<HtlcDetails>;
    awaitHtlcSettlement(id: string): Promise<OasisHtlc<HtlcStatus.SETTLED>>;
    awaitSwapSecret(id: string): Promise<string>;
    settleHtlc(settlementJWS: string, secret: string, hash: string, authorizationToken?: string): Promise<HtlcDetails>;
    awaitSettlementConfirmation(id: string, onUpdate?: (tx: HtlcDetails) => any): Promise<HtlcDetails>;
    stop(reason: Error): void;
}
