import { S as SDKConfig, a as SDKOptions, O as OfferRequest, b as Offer, T as TxResult, A as AgreementStatus } from './button-CBYHJrGt.js';
export { M as MorphCreditButton } from './button-CBYHJrGt.js';
import 'react';

declare global {
    interface Window {
        ethereum?: any;
    }
}
declare enum ErrorCodes {
    WALLET_NOT_CONNECTED = "WALLET_NOT_CONNECTED",
    WALLET_CONNECTION_FAILED = "WALLET_CONNECTION_FAILED",
    WRONG_NETWORK = "WRONG_NETWORK",
    INSUFFICIENT_CREDIT = "INSUFFICIENT_CREDIT",
    SCORE_NOT_FOUND = "SCORE_NOT_FOUND",
    SCORE_EXPIRED = "SCORE_EXPIRED",
    AGREEMENT_FAILED = "AGREEMENT_FAILED",
    AGREEMENT_NOT_FOUND = "AGREEMENT_NOT_FOUND",
    AGREEMENT_EXPIRED = "AGREEMENT_EXPIRED",
    NETWORK_ERROR = "NETWORK_ERROR",
    RPC_ERROR = "RPC_ERROR",
    TIMEOUT = "TIMEOUT",
    USER_REJECTED = "USER_REJECTED",
    INSUFFICIENT_BALANCE = "INSUFFICIENT_BALANCE",
    INVALID_ADDRESS = "INVALID_ADDRESS",
    INVALID_AMOUNT = "INVALID_AMOUNT",
    INVALID_OFFER = "INVALID_OFFER"
}
declare class MorphCreditError extends Error {
    code: string;
    details?: any;
    retryable: boolean;
    constructor(code: string, message: string, details?: any, retryable?: boolean);
}
declare class MorphCreditSDK {
    private config;
    private options;
    private provider;
    private signer;
    private eventCallbacks;
    private offersCache;
    constructor(config?: Partial<SDKConfig>, options?: SDKOptions);
    private static readonly BNPL_FACTORY_ABI;
    private static readonly BNPL_AGREEMENT_ABI;
    private getSigner;
    private initializeProviders;
    connectWallet(): Promise<string>;
    disconnectWallet(): void;
    getWalletAddress(): string | null;
    isWalletConnected(): boolean;
    getOffers(request: OfferRequest): Promise<Offer[]>;
    createAgreement(offerId: string, borrowerAddress?: string): Promise<TxResult>;
    getAgreementStatus(agreementAddress: string): Promise<AgreementStatus>;
    onAgreementCreated(callback: (agreement: TxResult) => void): void;
    onOffersLoaded(callback: (offers: Offer[]) => void): void;
    onWalletConnected(callback: (address: string) => void): void;
    onWalletDisconnected(callback: () => void): void;
    private addEventCallback;
    private triggerEvent;
    updateConfig(config: Partial<SDKConfig>): void;
    updateOptions(options: Partial<SDKOptions>): void;
    getConfig(): SDKConfig;
    setErrorHandler(handler: (error: MorphCreditError) => void): void;
}

export { AgreementStatus, ErrorCodes, MorphCreditError, MorphCreditSDK, Offer, OfferRequest, SDKConfig, SDKOptions, TxResult, MorphCreditSDK as default };
