///
import { Connection, PublicKey } from "@solana/web3.js";
import { ReserveConfigProto } from "./structs";
import { ReserveInfo, ReserveContext, QuoteValue, WalletId, TokenAccount, PortProfile, StakingPool, StakingPoolContext } from "./models";
import { Environment } from "./Environment";
import { BN } from "@project-serum/anchor";
import { TransactionEnvelope, Provider } from "@saberhq/solana-contrib";
export declare const LENDING_MARKET_LEN = 258;
export declare class Port {
readonly environment: Environment;
lendingMarket: PublicKey;
connection: Connection;
reserveContext?: ReserveContext;
constructor(connection: Connection, environment: Environment, lendingMarket: PublicKey);
setConnection(connection: Connection): void;
setLendingMarket(lendingMarket: PublicKey): void;
static forMainNet({ connection, profile, lendingMarket, }: {
connection?: Connection;
profile?: Environment;
lendingMarket?: PublicKey;
}): Port;
getEnvironment(): Environment;
load(): Promise;
getTotalMarketCap(): Promise;
getShareAccount(walletId: WalletId, context: ReserveContext): Promise;
getPortProfile(walletId: WalletId): Promise;
getReserveContext(): Promise;
getStakingPoolContext(): Promise;
getAllPortProfiles(): Promise;
getStakingPool(stakingPoolKey: PublicKey): Promise;
getReserve(reserveKey: PublicKey): Promise;
createLendingMarket({ provider, owner, }: {
provider: Provider;
owner?: PublicKey;
}): Promise<[TransactionEnvelope, PublicKey]>;
createReserve({ provider, reserveConfig, transferAuthority, sourceTokenWallet, initialLiquidity, oracle, price, }: {
provider: Provider;
reserveConfig: ReserveConfigProto;
transferAuthority: PublicKey;
sourceTokenWallet: PublicKey;
initialLiquidity: number | BN;
oracle?: PublicKey;
price?: BN;
}): Promise<[TransactionEnvelope[], PublicKey]>;
getLendingMarketAuthority(): Promise<[PublicKey, number]>;
private createAccount;
}
//# sourceMappingURL=Port.d.ts.map