import { EventOnChain } from "../../general/types/castingTypes";
import { BigIntAsString, CoinSymbol, IdAsStringBytes, IFixedAsString, IFixedAsStringBytes, ObjectId, PerpetualsMarketId, PerpetualsOrderIdAsString, SuiAddress } from "../../types";
export interface PerpetualsMarketDataIndexerResponse {
    pkg_id: IdAsStringBytes;
    initial_shared_version: BigIntAsString;
    object: {
        id: {
            id: IdAsStringBytes;
        };
        version: BigIntAsString;
        market_params: PerpetualsMarketParamsFieldsIndexerReponse;
        market_state: PerpetualsMarketStateFieldsIndexerReponse;
    };
}
export interface PerpetualsOrderbookIndexerResponse {
    asks: Record<PerpetualsOrderIdAsString, {
        account_id: BigIntAsString;
        size: BigIntAsString;
    }>;
    bids: Record<PerpetualsOrderIdAsString, {
        account_id: BigIntAsString;
        size: BigIntAsString;
    }>;
    asks_size: BigIntAsString;
    bids_size: BigIntAsString;
}
export interface PerpetualsMarketParamsFieldsIndexerReponse {
    margin_ratio_initial: IFixedAsStringBytes;
    margin_ratio_maintenance: IFixedAsStringBytes;
    base_pfs_id: IdAsStringBytes;
    collateral_pfs_id: IdAsStringBytes;
    funding_frequency_ms: BigIntAsString;
    funding_period_ms: BigIntAsString;
    premium_twap_frequency_ms: BigIntAsString;
    premium_twap_period_ms: BigIntAsString;
    spread_twap_frequency_ms: BigIntAsString;
    spread_twap_period_ms: BigIntAsString;
    maker_fee: IFixedAsStringBytes;
    taker_fee: IFixedAsStringBytes;
    liquidation_fee: IFixedAsStringBytes;
    force_cancel_fee: IFixedAsStringBytes;
    insurance_fund_fee: IFixedAsStringBytes;
    min_order_usd_value: IFixedAsStringBytes;
    lot_size: BigIntAsString;
    tick_size: BigIntAsString;
    liquidation_tolerance: BigIntAsString;
    max_pending_orders: BigIntAsString;
    oracle_tolerance: BigIntAsString;
}
export interface PerpetualsMarketStateFieldsIndexerReponse {
    cum_funding_rate_long: IFixedAsStringBytes;
    cum_funding_rate_short: IFixedAsStringBytes;
    funding_last_upd_ms: BigIntAsString;
    premium_twap: IFixedAsStringBytes;
    premium_twap_last_upd_ms: BigIntAsString;
    spread_twap: IFixedAsStringBytes;
    spread_twap_last_upd_ms: BigIntAsString;
    open_interest: IFixedAsStringBytes;
    fees_accrued: IFixedAsStringBytes;
}
export interface PerpetualsPositionIndexerResponse {
    position: {
        collateral: IFixedAsStringBytes;
        base_asset_amount: IFixedAsStringBytes;
        quote_asset_notional_amount: IFixedAsStringBytes;
        cum_funding_rate_long: IFixedAsStringBytes;
        cum_funding_rate_short: IFixedAsStringBytes;
        asks_quantity: IFixedAsStringBytes;
        bids_quantity: IFixedAsStringBytes;
        pending_orders: BigIntAsString;
        maker_fee: IFixedAsStringBytes;
        taker_fee: IFixedAsStringBytes;
    };
    pending_orders: {
        bids: Record<string, // PerpetualsOrderId
        BigIntAsString>;
        asks: Record<string, // PerpetualsOrderId
        BigIntAsString>;
    };
}
export type PerpetualsAccountPositionsIndexerResponse = [
    IdAsStringBytes,
    PerpetualsPositionIndexerResponse,
    IFixedAsStringBytes
][];
export type PerpetualsPreviewOrderIndexerResponse = {
    position: PerpetualsPositionIndexerResponse;
    price_slippage: IFixedAsStringBytes;
    percent_slippage: IFixedAsStringBytes;
    execution_price: IFixedAsStringBytes;
    size_filled: IFixedAsStringBytes;
    collateral_change: IFixedAsStringBytes;
    position_found: boolean;
    size_posted?: IFixedAsStringBytes;
} | {
    error: string;
};
export type PerpetualsPreviewCancelOrdersIndexerResponse = {
    position: PerpetualsPositionIndexerResponse;
    collateral_change: IFixedAsStringBytes;
} | {
    error: string;
};
export type PerpetualsPreviewReduceOrdersIndexerResponse = {
    position: PerpetualsPositionIndexerResponse;
    collateral_change: IFixedAsStringBytes;
} | {
    error: string;
};
export type PerpetualsMarketsIndexerResponse = Record<PerpetualsMarketId, [
    PerpetualsMarketDataIndexerResponse,
    CoinSymbol
]>;
export type PerpetualsMarketIndexerResponse = {
    ch: [PerpetualsMarketDataIndexerResponse, CoinSymbol];
    orderbook: PerpetualsOrderbookIndexerResponse;
};
export type UpdatedMarketVersionEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    version: BigIntAsString;
}>;
export type WithdrewCollateralEventOnChain = EventOnChain<{
    account_id: BigIntAsString;
    collateral: BigIntAsString;
}>;
export type DepositedCollateralEventOnChain = EventOnChain<{
    account_id: BigIntAsString;
    collateral: BigIntAsString;
}>;
export type AllocatedCollateralEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    account_id: BigIntAsString;
    collateral: BigIntAsString;
    position_collateral_after: IFixedAsString;
}>;
export type DeallocatedCollateralEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    account_id: BigIntAsString;
    collateral: BigIntAsString;
    position_collateral_after: IFixedAsString;
}>;
export type SettledFundingEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    account_id: BigIntAsString;
    collateral_change_usd: IFixedAsString;
    mkt_funding_rate_long: IFixedAsString;
    mkt_funding_rate_short: IFixedAsString;
}>;
export type LiquidatedEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    liqee_account_id: BigIntAsString;
    liqor_account_id: BigIntAsString;
    is_liqee_long: boolean;
    size_liquidated: BigIntAsString;
    mark_price: IFixedAsString;
    liqee_collateral_change_usd: IFixedAsString;
    liqee_base_amount: IFixedAsString;
    liqee_quote_amount: IFixedAsString;
    bad_debt: IFixedAsString;
}>;
export type CreatedAccountEventOnChain = EventOnChain<{
    user: SuiAddress;
    account_id: BigIntAsString;
}>;
export type CanceledOrderEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    account_id: BigIntAsString;
    size: BigIntAsString;
    order_id: BigIntAsString;
}>;
export type PostedOrderEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    account_id: BigIntAsString;
    posted_base_ask: BigIntAsString;
    posted_base_bid: BigIntAsString;
    pending_asks: IFixedAsString;
    pending_bids: IFixedAsString;
}>;
export type FilledMakerOrderEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    maker_account_id: BigIntAsString;
    collateral_change_usd: IFixedAsString;
    maker_base_amount: IFixedAsString;
    maker_collateral: IFixedAsString;
    maker_final_size: BigIntAsString;
    maker_pending_asks_quantity: IFixedAsString;
    maker_pending_bids_quantity: IFixedAsString;
    maker_quote_amount: IFixedAsString;
    maker_size: BigIntAsString;
    order_id: BigIntAsString;
}>;
export type FilledTakerOrderEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    taker_account_id: BigIntAsString;
    taker_collateral: IFixedAsString;
    collateral_change_usd: IFixedAsString;
    base_asset_delta_ask: IFixedAsString;
    quote_asset_delta_ask: IFixedAsString;
    base_asset_delta_bid: IFixedAsString;
    quote_asset_delta_bid: IFixedAsString;
    taker_base_amount: IFixedAsString;
    taker_quote_amount: IFixedAsString;
    liquidated_volume: IFixedAsString;
}>;
export type PostedOrderReceiptEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    account_id: BigIntAsString;
    order_id: BigIntAsString;
    order_size: BigIntAsString;
}>;
export type ReducedOrderEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    account_id: BigIntAsString;
    size_change: BigIntAsString;
    order_id: BigIntAsString;
}>;
export type UpdatedPremiumTwapEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    index_price: IFixedAsString;
    book_price: IFixedAsString;
    premium_twap: IFixedAsString;
    premium_twap_last_upd_ms: BigIntAsString;
}>;
export type UpdatedSpreadTwapEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    book_price: IFixedAsString;
    index_price: IFixedAsString;
    spread_twap: IFixedAsString;
    spread_twap_last_upd_ms: BigIntAsString;
}>;
export type UpdatedFundingEventOnChain = EventOnChain<{
    ch_id: ObjectId;
    cum_funding_rate_long: IFixedAsString;
    cum_funding_rate_short: IFixedAsString;
    funding_last_upd_ms: BigIntAsString;
}>;
//# sourceMappingURL=perpetualsCastingTypes.d.ts.map