import { IAlunaBalanceModule } from '../modules/authed/IAlunaBalanceModule'; import { IAlunaKeyModule } from '../modules/authed/IAlunaKeyModule'; import { IAlunaOrderWriteModule } from '../modules/authed/IAlunaOrderModule'; import { IAlunaPositionModule } from '../modules/authed/IAlunaPositionModule'; import { IAlunaMarketModule } from '../modules/public/IAlunaMarketModule'; import { IAlunaSymbolModule } from '../modules/public/IAlunaSymbolModule'; import { IAlunaCredentialsSchema } from '../schemas/IAlunaCredentialsSchema'; import { IAlunaExchangeSchema } from '../schemas/IAlunaExchangeSchema'; import { IAlunaSettingsSchema } from '../schemas/IAlunaSettingsSchema'; /** * Public things */ export interface IAlunaExchangePublic { id: string; specs: IAlunaExchangeSchema; settings: IAlunaSettingsSchema; symbol: IAlunaSymbolModule; market: IAlunaMarketModule; } /** * Authenticated things */ export interface IAlunaExchangeAuthed extends IAlunaExchangePublic { credentials: IAlunaCredentialsSchema; key: IAlunaKeyModule; order: IAlunaOrderWriteModule; balance: IAlunaBalanceModule; position?: IAlunaPositionModule; }