import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers'; import type { FunctionFragment, Result } from '@ethersproject/abi'; import type { Listener, Provider } from '@ethersproject/providers'; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common.js'; export declare namespace IStableMaster { type SLPDataStruct = { lastBlockUpdated: PromiseOrValue; lockedInterests: PromiseOrValue; maxInterestsDistributed: PromiseOrValue; feesAside: PromiseOrValue; slippageFee: PromiseOrValue; feesForSLPs: PromiseOrValue; slippage: PromiseOrValue; interestsForSLPs: PromiseOrValue; }; type SLPDataStructOutput = [ BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber ] & { lastBlockUpdated: BigNumber; lockedInterests: BigNumber; maxInterestsDistributed: BigNumber; feesAside: BigNumber; slippageFee: BigNumber; feesForSLPs: BigNumber; slippage: BigNumber; interestsForSLPs: BigNumber; }; type MintBurnDataStruct = { xFeeMint: PromiseOrValue[]; yFeeMint: PromiseOrValue[]; xFeeBurn: PromiseOrValue[]; yFeeBurn: PromiseOrValue[]; targetHAHedge: PromiseOrValue; bonusMalusMint: PromiseOrValue; bonusMalusBurn: PromiseOrValue; capOnStableMinted: PromiseOrValue; }; type MintBurnDataStructOutput = [ BigNumber[], BigNumber[], BigNumber[], BigNumber[], BigNumber, BigNumber, BigNumber, BigNumber ] & { xFeeMint: BigNumber[]; yFeeMint: BigNumber[]; xFeeBurn: BigNumber[]; yFeeBurn: BigNumber[]; targetHAHedge: BigNumber; bonusMalusMint: BigNumber; bonusMalusBurn: BigNumber; capOnStableMinted: BigNumber; }; } export interface IStableMasterInterface extends utils.Interface { functions: { 'agToken()': FunctionFragment; 'collateralMap(address)': FunctionFragment; 'deposit(uint256,address,address)': FunctionFragment; 'withdraw(uint256,address,address,address)': FunctionFragment; }; getFunction(nameOrSignatureOrTopic: 'agToken' | 'collateralMap' | 'deposit' | 'withdraw'): FunctionFragment; encodeFunctionData(functionFragment: 'agToken', values?: undefined): string; encodeFunctionData(functionFragment: 'collateralMap', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue, PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue]): string; decodeFunctionResult(functionFragment: 'agToken', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'collateralMap', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result; events: {}; } export interface IStableMaster extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IStableMasterInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { agToken(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; collateralMap(poolManager: PromiseOrValue, overrides?: CallOverrides): Promise<[ string, string, string, string, BigNumber, BigNumber, BigNumber, IStableMaster.SLPDataStructOutput, IStableMaster.MintBurnDataStructOutput ] & { token: string; sanToken: string; perpetualManager: string; oracle: string; stocksUsers: BigNumber; sanRate: BigNumber; collatBase: BigNumber; slpData: IStableMaster.SLPDataStructOutput; feeData: IStableMaster.MintBurnDataStructOutput; }>; deposit(amount: PromiseOrValue, user: PromiseOrValue, poolManager: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; withdraw(amount: PromiseOrValue, burner: PromiseOrValue, dest: PromiseOrValue, poolManager: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; agToken(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; collateralMap(poolManager: PromiseOrValue, overrides?: CallOverrides): Promise<[ string, string, string, string, BigNumber, BigNumber, BigNumber, IStableMaster.SLPDataStructOutput, IStableMaster.MintBurnDataStructOutput ] & { token: string; sanToken: string; perpetualManager: string; oracle: string; stocksUsers: BigNumber; sanRate: BigNumber; collatBase: BigNumber; slpData: IStableMaster.SLPDataStructOutput; feeData: IStableMaster.MintBurnDataStructOutput; }>; deposit(amount: PromiseOrValue, user: PromiseOrValue, poolManager: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; withdraw(amount: PromiseOrValue, burner: PromiseOrValue, dest: PromiseOrValue, poolManager: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; callStatic: { agToken(overrides?: CallOverrides): Promise; collateralMap(poolManager: PromiseOrValue, overrides?: CallOverrides): Promise<[ string, string, string, string, BigNumber, BigNumber, BigNumber, IStableMaster.SLPDataStructOutput, IStableMaster.MintBurnDataStructOutput ] & { token: string; sanToken: string; perpetualManager: string; oracle: string; stocksUsers: BigNumber; sanRate: BigNumber; collatBase: BigNumber; slpData: IStableMaster.SLPDataStructOutput; feeData: IStableMaster.MintBurnDataStructOutput; }>; deposit(amount: PromiseOrValue, user: PromiseOrValue, poolManager: PromiseOrValue, overrides?: CallOverrides): Promise; withdraw(amount: PromiseOrValue, burner: PromiseOrValue, dest: PromiseOrValue, poolManager: PromiseOrValue, overrides?: CallOverrides): Promise; }; filters: {}; estimateGas: { agToken(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; collateralMap(poolManager: PromiseOrValue, overrides?: CallOverrides): Promise; deposit(amount: PromiseOrValue, user: PromiseOrValue, poolManager: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; withdraw(amount: PromiseOrValue, burner: PromiseOrValue, dest: PromiseOrValue, poolManager: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; populateTransaction: { agToken(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; collateralMap(poolManager: PromiseOrValue, overrides?: CallOverrides): Promise; deposit(amount: PromiseOrValue, user: PromiseOrValue, poolManager: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; withdraw(amount: PromiseOrValue, burner: PromiseOrValue, dest: PromiseOrValue, poolManager: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; }