///
import { PublicKey, TransactionSignature } from '@solana/web3.js';
import { FeeStructure, OracleGuardRails, OracleSource, ExchangeStatus, MarketStatus, ContractTier, AssetTier, SpotFulfillmentConfigStatus } from './types';
import { BN } from '@coral-xyz/anchor';
import { DriftClient } from './driftClient';
export declare class AdminClient extends DriftClient {
initialize(usdcMint: PublicKey, _adminControlsPrices: boolean): Promise<[TransactionSignature]>;
initializeSpotMarket(mint: PublicKey, optimalUtilization: number, optimalRate: number, maxRate: number, oracle: PublicKey, oracleSource: OracleSource, initialAssetWeight: number, maintenanceAssetWeight: number, initialLiabilityWeight: number, maintenanceLiabilityWeight: number, imfFactor?: number, liquidatorFee?: number, activeStatus?: boolean, name?: string): Promise;
initializeSerumFulfillmentConfig(marketIndex: number, serumMarket: PublicKey, serumProgram: PublicKey): Promise;
initializePhoenixFulfillmentConfig(marketIndex: number, phoenixMarket: PublicKey): Promise;
initializePerpMarket(marketIndex: number, priceOracle: PublicKey, baseAssetReserve: BN, quoteAssetReserve: BN, periodicity: BN, pegMultiplier?: BN, oracleSource?: OracleSource, marginRatioInitial?: number, marginRatioMaintenance?: number, liquidatorFee?: number, activeStatus?: boolean, name?: string): Promise;
deleteInitializedPerpMarket(marketIndex: number): Promise;
moveAmmPrice(perpMarketIndex: number, baseAssetReserve: BN, quoteAssetReserve: BN, sqrtK?: BN): Promise;
updateK(perpMarketIndex: number, sqrtK: BN): Promise;
recenterPerpMarketAmm(perpMarketIndex: number, pegMultiplier: BN, sqrtK: BN): Promise;
updatePerpMarketConcentrationScale(perpMarketIndex: number, concentrationScale: BN): Promise;
moveAmmToPrice(perpMarketIndex: number, targetPrice: BN): Promise;
repegAmmCurve(newPeg: BN, perpMarketIndex: number): Promise;
updatePerpMarketAmmOracleTwap(perpMarketIndex: number): Promise;
resetPerpMarketAmmOracleTwap(perpMarketIndex: number): Promise;
depositIntoPerpMarketFeePool(perpMarketIndex: number, amount: BN, sourceVault: PublicKey): Promise;
updateAdmin(admin: PublicKey): Promise;
updatePerpMarketCurveUpdateIntensity(perpMarketIndex: number, curveUpdateIntensity: number): Promise;
updatePerpMarketTargetBaseAssetAmountPerLp(perpMarketIndex: number, targetBaseAssetAmountPerLP: number): Promise;
updatePerpMarketMarginRatio(perpMarketIndex: number, marginRatioInitial: number, marginRatioMaintenance: number): Promise;
updatePerpMarketImfFactor(perpMarketIndex: number, imfFactor: number, unrealizedPnlImfFactor: number): Promise;
updatePerpMarketBaseSpread(perpMarketIndex: number, baseSpread: number): Promise;
updateAmmJitIntensity(perpMarketIndex: number, ammJitIntensity: number): Promise;
updatePerpMarketName(perpMarketIndex: number, name: string): Promise;
updateSpotMarketName(spotMarketIndex: number, name: string): Promise;
updatePerpMarketPerLpBase(perpMarketIndex: number, perLpBase: number): Promise;
updatePerpMarketMaxSpread(perpMarketIndex: number, maxSpread: number): Promise;
updatePerpFeeStructure(feeStructure: FeeStructure): Promise;
updateSpotFeeStructure(feeStructure: FeeStructure): Promise;
updateInitialPctToLiquidate(initialPctToLiquidate: number): Promise;
updateLiquidationDuration(liquidationDuration: number): Promise;
updateLiquidationMarginBufferRatio(updateLiquidationMarginBufferRatio: number): Promise;
updateOracleGuardRails(oracleGuardRails: OracleGuardRails): Promise;
updateStateSettlementDuration(settlementDuration: number): Promise;
updateStateMaxNumberOfSubAccounts(maxNumberOfSubAccounts: number): Promise;
updateStateMaxInitializeUserFee(maxInitializeUserFee: number): Promise;
updateWithdrawGuardThreshold(spotMarketIndex: number, withdrawGuardThreshold: BN): Promise;
updateSpotMarketIfFactor(spotMarketIndex: number, userIfFactor: BN, totalIfFactor: BN): Promise;
updateSpotMarketRevenueSettlePeriod(spotMarketIndex: number, revenueSettlePeriod: BN): Promise;
updateSpotMarketMaxTokenDeposits(spotMarketIndex: number, maxTokenDeposits: BN): Promise;
updateSpotMarketScaleInitialAssetWeightStart(spotMarketIndex: number, scaleInitialAssetWeightStart: BN): Promise;
updateInsuranceFundUnstakingPeriod(spotMarketIndex: number, insuranceWithdrawEscrowPeriod: BN): Promise;
updateLpCooldownTime(cooldownTime: BN): Promise;
updatePerpMarketOracle(perpMarketIndex: number, oracle: PublicKey, oracleSource: OracleSource): Promise;
updatePerpMarketStepSizeAndTickSize(perpMarketIndex: number, stepSize: BN, tickSize: BN): Promise;
updatePerpMarketMinOrderSize(perpMarketIndex: number, orderSize: BN): Promise;
updateSpotMarketStepSizeAndTickSize(spotMarketIndex: number, stepSize: BN, tickSize: BN): Promise;
updateSpotMarketMinOrderSize(spotMarketIndex: number, orderSize: BN): Promise;
updatePerpMarketExpiry(perpMarketIndex: number, expiryTs: BN): Promise;
updateSpotMarketOracle(spotMarketIndex: number, oracle: PublicKey, oracleSource: OracleSource): Promise;
updateSpotMarketOrdersEnabled(spotMarketIndex: number, ordersEnabled: boolean): Promise;
updateSerumFulfillmentConfigStatus(serumFulfillmentConfig: PublicKey, status: SpotFulfillmentConfigStatus): Promise;
updatePhoenixFulfillmentConfigStatus(phoenixFulfillmentConfig: PublicKey, status: SpotFulfillmentConfigStatus): Promise;
updateSpotMarketExpiry(spotMarketIndex: number, expiryTs: BN): Promise;
updateWhitelistMint(whitelistMint?: PublicKey): Promise;
updateDiscountMint(discountMint: PublicKey): Promise;
updateSpotMarketMarginWeights(spotMarketIndex: number, initialAssetWeight: number, maintenanceAssetWeight: number, initialLiabilityWeight: number, maintenanceLiabilityWeight: number, imfFactor?: number): Promise;
updateSpotMarketBorrowRate(spotMarketIndex: number, optimalUtilization: number, optimalBorrowRate: number, optimalMaxRate: number): Promise;
updateSpotMarketAssetTier(spotMarketIndex: number, assetTier: AssetTier): Promise;
updateSpotMarketStatus(spotMarketIndex: number, marketStatus: MarketStatus): Promise;
updateSpotMarketPausedOperations(spotMarketIndex: number, pausedOperations: number): Promise;
updatePerpMarketStatus(perpMarketIndex: number, marketStatus: MarketStatus): Promise;
updatePerpMarketPausedOperations(perpMarketIndex: number, pausedOperations: number): Promise;
updatePerpMarketContractTier(perpMarketIndex: number, contractTier: ContractTier): Promise;
updateExchangeStatus(exchangeStatus: ExchangeStatus): Promise;
updatePerpAuctionDuration(minDuration: BN | number): Promise;
updateSpotAuctionDuration(defaultAuctionDuration: number): Promise;
updatePerpMarketMaxFillReserveFraction(perpMarketIndex: number, maxBaseAssetAmountRatio: number): Promise;
updateMaxSlippageRatio(perpMarketIndex: number, maxSlippageRatio: number): Promise;
updatePerpMarketUnrealizedAssetWeight(perpMarketIndex: number, unrealizedInitialAssetWeight: number, unrealizedMaintenanceAssetWeight: number): Promise;
updatePerpMarketMaxImbalances(perpMarketIndex: number, unrealizedMaxImbalance: BN, maxRevenueWithdrawPerPeriod: BN, quoteMaxInsurance: BN): Promise;
updatePerpMarketMaxOpenInterest(perpMarketIndex: number, maxOpenInterest: BN): Promise;
updatePerpMarketFeeAdjustment(perpMarketIndex: number, feeAdjustment: number): Promise;
updateSerumVault(srmVault: PublicKey): Promise;
updatePerpMarketLiquidationFee(perpMarketIndex: number, liquidatorFee: number, ifLiquidationFee: number): Promise;
updateSpotMarketLiquidationFee(spotMarketIndex: number, liquidatorFee: number, ifLiquidationFee: number): Promise;
initializeProtocolIfSharesTransferConfig(): Promise;
updateProtocolIfSharesTransferConfig(whitelistedSigners?: PublicKey[], maxTransferPerEpoch?: BN): Promise;
}