import { Address } from '@solana/kit';
import BN from 'bn.js';
import { BorrowOrder, BorrowOrderConfigArgs } from '../@codegen/klend/types';
/**
 * Wrapper class for working with borrow orders on obligations.
 * Borrow orders allow users to request fixed-term loans with specific parameters.
 */
export declare class KaminoBorrowOrder {
    readonly debtLiquidityMint: Address;
    readonly remainingDebtAmount: BN;
    readonly filledDebtDestination: Address;
    readonly minDebtTermSeconds: BN;
    readonly fillableUntilTimestamp: BN;
    readonly maxBorrowRateBps: number;
    readonly enableAutoRolloverOnFilledBorrows?: boolean | undefined;
    readonly placedAtTimestamp?: BN | undefined;
    readonly lastUpdatedAtTimestamp?: BN | undefined;
    readonly requestedDebtAmount?: BN | undefined;
    constructor(debtLiquidityMint: Address, remainingDebtAmount: BN, filledDebtDestination: Address, minDebtTermSeconds: BN, fillableUntilTimestamp: BN, maxBorrowRateBps: number, enableAutoRolloverOnFilledBorrows?: boolean | undefined, placedAtTimestamp?: BN | undefined, lastUpdatedAtTimestamp?: BN | undefined, requestedDebtAmount?: BN | undefined);
    /**
     * Creates a borrow order config args for setting on an obligation
     */
    toConfigArgs(): BorrowOrderConfigArgs;
    /**
     * Creates a KaminoBorrowOrder from existing borrow order state
     */
    static fromExistingBorrowOrderState(borrowOrder: BorrowOrder): KaminoBorrowOrder;
    /**
     * Creates a fixed-term borrow order with common parameters
     */
    static createFixedTermBorrowOrder(params: {
        debtMint: Address;
        amount: BN;
        destination: Address;
        termSeconds: BN;
        expirySeconds: BN;
        maxRateBps: number;
        enableAutoRolloverOnFilledBorrows?: boolean;
    }): KaminoBorrowOrder;
    /**
     * Creates an open-term borrow order
     */
    static createOpenTermBorrowOrder(params: {
        debtMint: Address;
        amount: BN;
        destination: Address;
        expirySeconds: BN;
    }): KaminoBorrowOrder;
    /**
     * Creates a cancel order from an existing borrow order.
     * This removes the existing order
     */
    static createCancelBorrowOrderFromExistingState(existing: BorrowOrder): KaminoBorrowOrder;
    /**
     * Check if the borrow order is active (has remaining debt to be filled)
     */
    isActive(): boolean;
    /**
     * Check if the borrow order has expired
     */
    isExpired(currentTimestamp: BN): boolean;
}
//# sourceMappingURL=borrowOrder.d.ts.map