import { Balance, Event, Object, Percentage, ObjectId, SuiAddress, Timestamp } from "../../general/types/generalTypes";
export interface LeveragedAfSuiPosition extends Object {
    obligationId: ObjectId;
    obligationKeyId: ObjectId;
    baseAfSuiCollateral: Balance;
    afSuiCollateral: Balance;
    suiDebt: Balance;
}
export interface LeveragedAfSuiState extends Object {
    totalAfSuiCollateral: Balance;
    totalSuiDebt: Balance;
    protocolVersion: bigint;
}
export type LeveragedStakingEvent = LeveragedStakedEvent | LeveragedUnstakedEvent | LeveragedStakeChangedLeverageEvent;
export interface LeveragedStakedEvent extends Event {
    userAddress: SuiAddress;
    newAfSuiCollateral: Balance;
    leverage: number;
}
export interface LeveragedUnstakedEvent extends Event {
    userAddress: SuiAddress;
    afsuiCollateral: Balance;
}
export interface LeveragedStakeChangedLeverageEvent extends Event {
    userAddress: SuiAddress;
    initialLeverage: number;
    newLeverage: number;
}
export declare const isLeveragedStakedEvent: (event: LeveragedStakingEvent) => event is LeveragedStakedEvent;
export declare const isLeveragedUnstakedEvent: (event: LeveragedStakingEvent) => event is LeveragedUnstakedEvent;
export declare const isLeveragedStakeChangedLeverageEvent: (event: LeveragedStakingEvent) => event is LeveragedStakeChangedLeverageEvent;
export interface LeveragedStakingPerformanceDataPoint {
    time: Timestamp;
    sui: number;
    afSui: number;
    leveragedAfSui: number;
}
export type LeveragedStakingPerformanceGraphDataTimeframeKey = "1M";
export interface ApiLeveragedStakePositionBody {
    walletAddress: SuiAddress;
}
export type ApiLeveragedStakePositionResponse = LeveragedAfSuiPosition | "none";
export interface LeveragedStakingPerformanceDataBody {
    timeframe: LeveragedStakingPerformanceGraphDataTimeframeKey;
    borrowRate: Percentage;
    maxLeverage: number;
}
//# sourceMappingURL=leveragedStakingTypes.d.ts.map