import { ObjectId, SuiAddress } from "../../types";
import { CoinType } from "../coin/coinTypes";
import { Balance, Timestamp, TransactionDigest } from "../../general/types/generalTypes";
export interface LimitOrdersIntegratorFeeData {
    feeBps: number;
    feeRecipient: SuiAddress;
}
export interface ApiLimitOrdersCreateOrderTransactionBody {
    walletAddress: SuiAddress;
    allocateCoinType: CoinType;
    allocateCoinAmount: Balance;
    buyCoinType: CoinType;
    customRecipient?: SuiAddress;
    expiryDurationMs: number;
    isSponsoredTx?: boolean;
    integratorFee?: LimitOrdersIntegratorFeeData;
    outputToInputExchangeRate: number;
    outputToInputStopLossExchangeRate?: number;
}
export interface ApiLimitOrdersSubOrdersBody {
    orderPrice: Balance;
    ordersAmount: number;
}
export interface ApiLimitLaddersOrdersBody {
    price: Balance;
    quantity: Balance;
}
export interface ApiLimitOrdersCancelOrderTransactionBody {
    walletAddress: SuiAddress;
    bytes: string;
    signature: string;
}
export type LimitOrdersOrderStatus = "Active" | "Canceled" | "Failed" | "Filled" | "Expired" | "StopLossTriggered";
export interface LimitOrderObject {
    objectId: ObjectId;
    allocatedCoin: {
        coin: CoinType;
        amount: Balance;
    };
    buyCoin: {
        coin: CoinType;
        amount: Balance;
    };
    currentAmountSold: Balance;
    currentAmountBought: Balance;
    recipient: SuiAddress;
    created: {
        timestamp: Timestamp;
        txnDigest: TransactionDigest;
    };
    finished?: {
        timestamp: Timestamp;
        txnDigest: TransactionDigest;
    };
    expiryTimestamp: Timestamp;
    status: LimitOrdersOrderStatus;
    error?: string;
    integratorFee?: LimitOrdersIntegratorFeeData;
    outputToInputStopLossExchangeRate?: number;
}
export interface ApiLimitOrdersPastOrdersOwnedBody {
    walletAddress: SuiAddress;
}
export interface ApiLimitOrdersActiveOrdersOwnedBody {
    walletAddress: SuiAddress;
    bytes: string;
    signature: string;
}
//# sourceMappingURL=limitOrdersTypes.d.ts.map