import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export declare type SLPDataStruct = {
    lastBlockUpdated: PromiseOrValue<BigNumberish>;
    lockedInterests: PromiseOrValue<BigNumberish>;
    maxInterestsDistributed: PromiseOrValue<BigNumberish>;
    feesAside: PromiseOrValue<BigNumberish>;
    slippageFee: PromiseOrValue<BigNumberish>;
    feesForSLPs: PromiseOrValue<BigNumberish>;
    slippage: PromiseOrValue<BigNumberish>;
    interestsForSLPs: PromiseOrValue<BigNumberish>;
};
export declare 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;
};
export declare type MintBurnDataStruct = {
    xFeeMint: PromiseOrValue<BigNumberish>[];
    yFeeMint: PromiseOrValue<BigNumberish>[];
    xFeeBurn: PromiseOrValue<BigNumberish>[];
    yFeeBurn: PromiseOrValue<BigNumberish>[];
    targetHAHedge: PromiseOrValue<BigNumberish>;
    bonusMalusMint: PromiseOrValue<BigNumberish>;
    bonusMalusBurn: PromiseOrValue<BigNumberish>;
    capOnStableMinted: PromiseOrValue<BigNumberish>;
};
export declare 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 AngleStablemasterInterface extends utils.Interface {
    functions: {
        'BASE_PARAMS()': FunctionFragment;
        'BASE_TOKENS()': FunctionFragment;
        'CORE_ROLE()': FunctionFragment;
        'DEFAULT_ADMIN_ROLE()': FunctionFragment;
        'GOVERNOR_ROLE()': FunctionFragment;
        'GUARDIAN_ROLE()': FunctionFragment;
        'SLP()': FunctionFragment;
        'STABLE()': FunctionFragment;
        'accumulateInterest(uint256)': FunctionFragment;
        'addGovernor(address)': FunctionFragment;
        'agToken()': FunctionFragment;
        'burn(uint256,address,address,address,uint256)': FunctionFragment;
        'collateralMap(address)': FunctionFragment;
        'convertToSLP(uint256,address)': FunctionFragment;
        'deploy(address[],address,address)': FunctionFragment;
        'deployCollateral(address,address,address,address,address)': FunctionFragment;
        'deposit(uint256,address,address)': FunctionFragment;
        'getCollateralRatio()': FunctionFragment;
        'getRoleAdmin(bytes32)': FunctionFragment;
        'getStocksUsers()': FunctionFragment;
        'grantRole(bytes32,address)': FunctionFragment;
        'hasRole(bytes32,address)': FunctionFragment;
        'initialize(address)': FunctionFragment;
        'mint(uint256,address,address,uint256)': FunctionFragment;
        'pause(bytes32,address)': FunctionFragment;
        'paused(bytes32)': FunctionFragment;
        'rebalanceStocksUsers(uint256,address,address)': FunctionFragment;
        'removeGovernor(address)': FunctionFragment;
        'renounceRole(bytes32,address)': FunctionFragment;
        'revokeCollateral(address,address)': FunctionFragment;
        'revokeGuardian(address)': FunctionFragment;
        'revokeRole(bytes32,address)': FunctionFragment;
        'setCapOnStableAndMaxInterests(uint256,uint256,address)': FunctionFragment;
        'setCore(address)': FunctionFragment;
        'setFeeKeeper(uint64,uint64,uint64,uint64)': FunctionFragment;
        'setFeeManager(address,address,address)': FunctionFragment;
        'setGuardian(address,address)': FunctionFragment;
        'setIncentivesForSLPs(uint64,uint64,address)': FunctionFragment;
        'setOracle(address,address)': FunctionFragment;
        'setTargetHAHedge(uint64)': FunctionFragment;
        'setUserFees(address,uint64[],uint64[],uint8)': FunctionFragment;
        'signalLoss(uint256)': FunctionFragment;
        'unpause(bytes32,address)': FunctionFragment;
        'updateStocksUsers(uint256,address)': FunctionFragment;
        'withdraw(uint256,address,address,address)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'BASE_PARAMS' | 'BASE_TOKENS' | 'CORE_ROLE' | 'DEFAULT_ADMIN_ROLE' | 'GOVERNOR_ROLE' | 'GUARDIAN_ROLE' | 'SLP' | 'STABLE' | 'accumulateInterest' | 'addGovernor' | 'agToken' | 'burn' | 'collateralMap' | 'convertToSLP' | 'deploy' | 'deployCollateral' | 'deposit' | 'getCollateralRatio' | 'getRoleAdmin' | 'getStocksUsers' | 'grantRole' | 'hasRole' | 'initialize' | 'mint' | 'pause' | 'paused' | 'rebalanceStocksUsers' | 'removeGovernor' | 'renounceRole' | 'revokeCollateral' | 'revokeGuardian' | 'revokeRole' | 'setCapOnStableAndMaxInterests' | 'setCore' | 'setFeeKeeper' | 'setFeeManager' | 'setGuardian' | 'setIncentivesForSLPs' | 'setOracle' | 'setTargetHAHedge' | 'setUserFees' | 'signalLoss' | 'unpause' | 'updateStocksUsers' | 'withdraw'): FunctionFragment;
    encodeFunctionData(functionFragment: 'BASE_PARAMS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'BASE_TOKENS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'CORE_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DEFAULT_ADMIN_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'GOVERNOR_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'GUARDIAN_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'SLP', values?: undefined): string;
    encodeFunctionData(functionFragment: 'STABLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'accumulateInterest', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'addGovernor', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'agToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'burn', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'collateralMap', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'convertToSLP', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'deploy', values: [PromiseOrValue<string>[], PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'deployCollateral', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCollateralRatio', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getRoleAdmin', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getStocksUsers', values?: undefined): string;
    encodeFunctionData(functionFragment: 'grantRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'hasRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'initialize', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'mint', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'pause', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'paused', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'rebalanceStocksUsers', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'removeGovernor', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'renounceRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'revokeCollateral', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'revokeGuardian', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'revokeRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setCapOnStableAndMaxInterests', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setCore', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setFeeKeeper', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'setFeeManager', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setGuardian', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setIncentivesForSLPs', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setOracle', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setTargetHAHedge', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setUserFees', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>[],
        PromiseOrValue<BigNumberish>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'signalLoss', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'unpause', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'updateStocksUsers', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: 'BASE_PARAMS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'BASE_TOKENS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'CORE_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DEFAULT_ADMIN_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'GOVERNOR_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'GUARDIAN_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'SLP', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'STABLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'accumulateInterest', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addGovernor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'agToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'burn', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'collateralMap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'convertToSLP', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deploy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deployCollateral', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCollateralRatio', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getStocksUsers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'grantRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rebalanceStocksUsers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeGovernor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeCollateral', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeGuardian', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setCapOnStableAndMaxInterests', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setCore', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFeeKeeper', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFeeManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setGuardian', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setIncentivesForSLPs', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setOracle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTargetHAHedge', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setUserFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'signalLoss', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unpause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateStocksUsers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    events: {
        'BurntStablecoins(address,uint256,uint256)': EventFragment;
        'CapOnStableAndMaxInterestsUpdated(address,uint256,uint256)': EventFragment;
        'CollateralDeployed(address,address,address,address)': EventFragment;
        'CollateralRevoked(address)': EventFragment;
        'FeeArrayUpdated(address,uint64[],uint64[],uint8)': EventFragment;
        'FeeManagerUpdated(address,address)': EventFragment;
        'MintedStablecoins(address,uint256,uint256)': EventFragment;
        'OracleUpdated(address,address)': EventFragment;
        'Paused(bytes32)': EventFragment;
        'RoleAdminChanged(bytes32,bytes32,bytes32)': EventFragment;
        'RoleGranted(bytes32,address,address)': EventFragment;
        'RoleRevoked(bytes32,address,address)': EventFragment;
        'SLPsIncentivesUpdated(address,uint64,uint64)': EventFragment;
        'SanRateUpdated(address,uint256)': EventFragment;
        'StocksUsersUpdated(address,uint256)': EventFragment;
        'Unpaused(bytes32)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'BurntStablecoins'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CapOnStableAndMaxInterestsUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CollateralDeployed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CollateralRevoked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeeArrayUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeeManagerUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'MintedStablecoins'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OracleUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleAdminChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleGranted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleRevoked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SLPsIncentivesUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SanRateUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StocksUsersUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment;
}
export interface BurntStablecoinsEventObject {
    _poolManager: string;
    amount: BigNumber;
    redeemInC: BigNumber;
}
export declare type BurntStablecoinsEvent = TypedEvent<[string, BigNumber, BigNumber], BurntStablecoinsEventObject>;
export declare type BurntStablecoinsEventFilter = TypedEventFilter<BurntStablecoinsEvent>;
export interface CapOnStableAndMaxInterestsUpdatedEventObject {
    _poolManager: string;
    _capOnStableMinted: BigNumber;
    _maxInterestsDistributed: BigNumber;
}
export declare type CapOnStableAndMaxInterestsUpdatedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], CapOnStableAndMaxInterestsUpdatedEventObject>;
export declare type CapOnStableAndMaxInterestsUpdatedEventFilter = TypedEventFilter<CapOnStableAndMaxInterestsUpdatedEvent>;
export interface CollateralDeployedEventObject {
    _poolManager: string;
    _perpetualManager: string;
    _sanToken: string;
    _oracle: string;
}
export declare type CollateralDeployedEvent = TypedEvent<[string, string, string, string], CollateralDeployedEventObject>;
export declare type CollateralDeployedEventFilter = TypedEventFilter<CollateralDeployedEvent>;
export interface CollateralRevokedEventObject {
    _poolManager: string;
}
export declare type CollateralRevokedEvent = TypedEvent<[string], CollateralRevokedEventObject>;
export declare type CollateralRevokedEventFilter = TypedEventFilter<CollateralRevokedEvent>;
export interface FeeArrayUpdatedEventObject {
    _poolManager: string;
    _xFee: BigNumber[];
    _yFee: BigNumber[];
    _type: number;
}
export declare type FeeArrayUpdatedEvent = TypedEvent<[string, BigNumber[], BigNumber[], number], FeeArrayUpdatedEventObject>;
export declare type FeeArrayUpdatedEventFilter = TypedEventFilter<FeeArrayUpdatedEvent>;
export interface FeeManagerUpdatedEventObject {
    _poolManager: string;
    newFeeManager: string;
}
export declare type FeeManagerUpdatedEvent = TypedEvent<[string, string], FeeManagerUpdatedEventObject>;
export declare type FeeManagerUpdatedEventFilter = TypedEventFilter<FeeManagerUpdatedEvent>;
export interface MintedStablecoinsEventObject {
    _poolManager: string;
    amount: BigNumber;
    amountForUserInStable: BigNumber;
}
export declare type MintedStablecoinsEvent = TypedEvent<[string, BigNumber, BigNumber], MintedStablecoinsEventObject>;
export declare type MintedStablecoinsEventFilter = TypedEventFilter<MintedStablecoinsEvent>;
export interface OracleUpdatedEventObject {
    _poolManager: string;
    _oracle: string;
}
export declare type OracleUpdatedEvent = TypedEvent<[string, string], OracleUpdatedEventObject>;
export declare type OracleUpdatedEventFilter = TypedEventFilter<OracleUpdatedEvent>;
export interface PausedEventObject {
    name: string;
}
export declare type PausedEvent = TypedEvent<[string], PausedEventObject>;
export declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface RoleAdminChangedEventObject {
    role: string;
    previousAdminRole: string;
    newAdminRole: string;
}
export declare type RoleAdminChangedEvent = TypedEvent<[string, string, string], RoleAdminChangedEventObject>;
export declare type RoleAdminChangedEventFilter = TypedEventFilter<RoleAdminChangedEvent>;
export interface RoleGrantedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleGrantedEvent = TypedEvent<[string, string, string], RoleGrantedEventObject>;
export declare type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export interface RoleRevokedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleRevokedEvent = TypedEvent<[string, string, string], RoleRevokedEventObject>;
export declare type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export interface SLPsIncentivesUpdatedEventObject {
    _poolManager: string;
    _feesForSLPs: BigNumber;
    _interestsForSLPs: BigNumber;
}
export declare type SLPsIncentivesUpdatedEvent = TypedEvent<[string, BigNumber, BigNumber], SLPsIncentivesUpdatedEventObject>;
export declare type SLPsIncentivesUpdatedEventFilter = TypedEventFilter<SLPsIncentivesUpdatedEvent>;
export interface SanRateUpdatedEventObject {
    _token: string;
    _newSanRate: BigNumber;
}
export declare type SanRateUpdatedEvent = TypedEvent<[string, BigNumber], SanRateUpdatedEventObject>;
export declare type SanRateUpdatedEventFilter = TypedEventFilter<SanRateUpdatedEvent>;
export interface StocksUsersUpdatedEventObject {
    _poolManager: string;
    _stocksUsers: BigNumber;
}
export declare type StocksUsersUpdatedEvent = TypedEvent<[string, BigNumber], StocksUsersUpdatedEventObject>;
export declare type StocksUsersUpdatedEventFilter = TypedEventFilter<StocksUsersUpdatedEvent>;
export interface UnpausedEventObject {
    name: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface AngleStablemaster extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: AngleStablemasterInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        BASE_PARAMS(overrides?: CallOverrides): Promise<[BigNumber]>;
        BASE_TOKENS(overrides?: CallOverrides): Promise<[BigNumber]>;
        CORE_ROLE(overrides?: CallOverrides): Promise<[string]>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        GOVERNOR_ROLE(overrides?: CallOverrides): Promise<[string]>;
        GUARDIAN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        SLP(overrides?: CallOverrides): Promise<[string]>;
        STABLE(overrides?: CallOverrides): Promise<[string]>;
        accumulateInterest(gain: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addGovernor(governor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        agToken(overrides?: CallOverrides): Promise<[string]>;
        burn(amount: PromiseOrValue<BigNumberish>, burner: PromiseOrValue<string>, dest: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, minCollatAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        collateralMap(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            string,
            string,
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            SLPDataStructOutput,
            MintBurnDataStructOutput
        ] & {
            token: string;
            sanToken: string;
            perpetualManager: string;
            oracle: string;
            stocksUsers: BigNumber;
            sanRate: BigNumber;
            collatBase: BigNumber;
            slpData: SLPDataStructOutput;
            feeData: MintBurnDataStructOutput;
        }>;
        convertToSLP(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        deploy(governorList: PromiseOrValue<string>[], guardian: PromiseOrValue<string>, _agToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        deployCollateral(poolManager: PromiseOrValue<string>, perpetualManager: PromiseOrValue<string>, feeManager: PromiseOrValue<string>, oracle: PromiseOrValue<string>, sanToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        deposit(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getCollateralRatio(overrides?: CallOverrides): Promise<[BigNumber]>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        getStocksUsers(overrides?: CallOverrides): Promise<[BigNumber] & {
            _stocksUsers: BigNumber;
        }>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        initialize(core_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        mint(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, minStableAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        pause(agent: PromiseOrValue<BytesLike>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        rebalanceStocksUsers(amount: PromiseOrValue<BigNumberish>, poolManagerUp: PromiseOrValue<string>, poolManagerDown: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeGovernor(governor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revokeCollateral(poolManager: PromiseOrValue<string>, settlementContract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revokeGuardian(oldGuardian: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setCapOnStableAndMaxInterests(_capOnStableMinted: PromiseOrValue<BigNumberish>, _maxInterestsDistributed: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setCore(newCore: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFeeKeeper(_bonusMalusMint: PromiseOrValue<BigNumberish>, _bonusMalusBurn: PromiseOrValue<BigNumberish>, _slippage: PromiseOrValue<BigNumberish>, _slippageFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFeeManager(newFeeManager: PromiseOrValue<string>, oldFeeManager: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setGuardian(newGuardian: PromiseOrValue<string>, oldGuardian: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setIncentivesForSLPs(_feesForSLPs: PromiseOrValue<BigNumberish>, _interestsForSLPs: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setOracle(_oracle: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setTargetHAHedge(_targetHAHedge: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setUserFees(poolManager: PromiseOrValue<string>, _xFee: PromiseOrValue<BigNumberish>[], _yFee: PromiseOrValue<BigNumberish>[], _mint: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        signalLoss(loss: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unpause(agent: PromiseOrValue<BytesLike>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateStocksUsers(amount: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdraw(amount: PromiseOrValue<BigNumberish>, burner: PromiseOrValue<string>, dest: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    BASE_PARAMS(overrides?: CallOverrides): Promise<BigNumber>;
    BASE_TOKENS(overrides?: CallOverrides): Promise<BigNumber>;
    CORE_ROLE(overrides?: CallOverrides): Promise<string>;
    DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    GOVERNOR_ROLE(overrides?: CallOverrides): Promise<string>;
    GUARDIAN_ROLE(overrides?: CallOverrides): Promise<string>;
    SLP(overrides?: CallOverrides): Promise<string>;
    STABLE(overrides?: CallOverrides): Promise<string>;
    accumulateInterest(gain: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addGovernor(governor: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    agToken(overrides?: CallOverrides): Promise<string>;
    burn(amount: PromiseOrValue<BigNumberish>, burner: PromiseOrValue<string>, dest: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, minCollatAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    collateralMap(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        string,
        string,
        string,
        string,
        BigNumber,
        BigNumber,
        BigNumber,
        SLPDataStructOutput,
        MintBurnDataStructOutput
    ] & {
        token: string;
        sanToken: string;
        perpetualManager: string;
        oracle: string;
        stocksUsers: BigNumber;
        sanRate: BigNumber;
        collatBase: BigNumber;
        slpData: SLPDataStructOutput;
        feeData: MintBurnDataStructOutput;
    }>;
    convertToSLP(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    deploy(governorList: PromiseOrValue<string>[], guardian: PromiseOrValue<string>, _agToken: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    deployCollateral(poolManager: PromiseOrValue<string>, perpetualManager: PromiseOrValue<string>, feeManager: PromiseOrValue<string>, oracle: PromiseOrValue<string>, sanToken: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    deposit(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getCollateralRatio(overrides?: CallOverrides): Promise<BigNumber>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    getStocksUsers(overrides?: CallOverrides): Promise<BigNumber>;
    grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    initialize(core_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    mint(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, minStableAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    pause(agent: PromiseOrValue<BytesLike>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    rebalanceStocksUsers(amount: PromiseOrValue<BigNumberish>, poolManagerUp: PromiseOrValue<string>, poolManagerDown: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeGovernor(governor: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revokeCollateral(poolManager: PromiseOrValue<string>, settlementContract: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revokeGuardian(oldGuardian: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setCapOnStableAndMaxInterests(_capOnStableMinted: PromiseOrValue<BigNumberish>, _maxInterestsDistributed: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setCore(newCore: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFeeKeeper(_bonusMalusMint: PromiseOrValue<BigNumberish>, _bonusMalusBurn: PromiseOrValue<BigNumberish>, _slippage: PromiseOrValue<BigNumberish>, _slippageFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFeeManager(newFeeManager: PromiseOrValue<string>, oldFeeManager: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setGuardian(newGuardian: PromiseOrValue<string>, oldGuardian: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setIncentivesForSLPs(_feesForSLPs: PromiseOrValue<BigNumberish>, _interestsForSLPs: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setOracle(_oracle: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setTargetHAHedge(_targetHAHedge: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setUserFees(poolManager: PromiseOrValue<string>, _xFee: PromiseOrValue<BigNumberish>[], _yFee: PromiseOrValue<BigNumberish>[], _mint: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    signalLoss(loss: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unpause(agent: PromiseOrValue<BytesLike>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateStocksUsers(amount: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdraw(amount: PromiseOrValue<BigNumberish>, burner: PromiseOrValue<string>, dest: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        BASE_PARAMS(overrides?: CallOverrides): Promise<BigNumber>;
        BASE_TOKENS(overrides?: CallOverrides): Promise<BigNumber>;
        CORE_ROLE(overrides?: CallOverrides): Promise<string>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        GOVERNOR_ROLE(overrides?: CallOverrides): Promise<string>;
        GUARDIAN_ROLE(overrides?: CallOverrides): Promise<string>;
        SLP(overrides?: CallOverrides): Promise<string>;
        STABLE(overrides?: CallOverrides): Promise<string>;
        accumulateInterest(gain: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        addGovernor(governor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        agToken(overrides?: CallOverrides): Promise<string>;
        burn(amount: PromiseOrValue<BigNumberish>, burner: PromiseOrValue<string>, dest: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, minCollatAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        collateralMap(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            string,
            string,
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            SLPDataStructOutput,
            MintBurnDataStructOutput
        ] & {
            token: string;
            sanToken: string;
            perpetualManager: string;
            oracle: string;
            stocksUsers: BigNumber;
            sanRate: BigNumber;
            collatBase: BigNumber;
            slpData: SLPDataStructOutput;
            feeData: MintBurnDataStructOutput;
        }>;
        convertToSLP(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        deploy(governorList: PromiseOrValue<string>[], guardian: PromiseOrValue<string>, _agToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        deployCollateral(poolManager: PromiseOrValue<string>, perpetualManager: PromiseOrValue<string>, feeManager: PromiseOrValue<string>, oracle: PromiseOrValue<string>, sanToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        deposit(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        getCollateralRatio(overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        getStocksUsers(overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        initialize(core_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        mint(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, minStableAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        pause(agent: PromiseOrValue<BytesLike>, poolManager: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        paused(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        rebalanceStocksUsers(amount: PromiseOrValue<BigNumberish>, poolManagerUp: PromiseOrValue<string>, poolManagerDown: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        removeGovernor(governor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        revokeCollateral(poolManager: PromiseOrValue<string>, settlementContract: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        revokeGuardian(oldGuardian: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setCapOnStableAndMaxInterests(_capOnStableMinted: PromiseOrValue<BigNumberish>, _maxInterestsDistributed: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setCore(newCore: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setFeeKeeper(_bonusMalusMint: PromiseOrValue<BigNumberish>, _bonusMalusBurn: PromiseOrValue<BigNumberish>, _slippage: PromiseOrValue<BigNumberish>, _slippageFee: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setFeeManager(newFeeManager: PromiseOrValue<string>, oldFeeManager: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setGuardian(newGuardian: PromiseOrValue<string>, oldGuardian: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setIncentivesForSLPs(_feesForSLPs: PromiseOrValue<BigNumberish>, _interestsForSLPs: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setOracle(_oracle: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setTargetHAHedge(_targetHAHedge: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setUserFees(poolManager: PromiseOrValue<string>, _xFee: PromiseOrValue<BigNumberish>[], _yFee: PromiseOrValue<BigNumberish>[], _mint: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        signalLoss(loss: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        unpause(agent: PromiseOrValue<BytesLike>, poolManager: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        updateStocksUsers(amount: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        withdraw(amount: PromiseOrValue<BigNumberish>, burner: PromiseOrValue<string>, dest: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'BurntStablecoins(address,uint256,uint256)'(_poolManager?: PromiseOrValue<string> | null, amount?: null, redeemInC?: null): BurntStablecoinsEventFilter;
        BurntStablecoins(_poolManager?: PromiseOrValue<string> | null, amount?: null, redeemInC?: null): BurntStablecoinsEventFilter;
        'CapOnStableAndMaxInterestsUpdated(address,uint256,uint256)'(_poolManager?: PromiseOrValue<string> | null, _capOnStableMinted?: null, _maxInterestsDistributed?: null): CapOnStableAndMaxInterestsUpdatedEventFilter;
        CapOnStableAndMaxInterestsUpdated(_poolManager?: PromiseOrValue<string> | null, _capOnStableMinted?: null, _maxInterestsDistributed?: null): CapOnStableAndMaxInterestsUpdatedEventFilter;
        'CollateralDeployed(address,address,address,address)'(_poolManager?: PromiseOrValue<string> | null, _perpetualManager?: PromiseOrValue<string> | null, _sanToken?: PromiseOrValue<string> | null, _oracle?: null): CollateralDeployedEventFilter;
        CollateralDeployed(_poolManager?: PromiseOrValue<string> | null, _perpetualManager?: PromiseOrValue<string> | null, _sanToken?: PromiseOrValue<string> | null, _oracle?: null): CollateralDeployedEventFilter;
        'CollateralRevoked(address)'(_poolManager?: PromiseOrValue<string> | null): CollateralRevokedEventFilter;
        CollateralRevoked(_poolManager?: PromiseOrValue<string> | null): CollateralRevokedEventFilter;
        'FeeArrayUpdated(address,uint64[],uint64[],uint8)'(_poolManager?: PromiseOrValue<string> | null, _xFee?: null, _yFee?: null, _type?: null): FeeArrayUpdatedEventFilter;
        FeeArrayUpdated(_poolManager?: PromiseOrValue<string> | null, _xFee?: null, _yFee?: null, _type?: null): FeeArrayUpdatedEventFilter;
        'FeeManagerUpdated(address,address)'(_poolManager?: PromiseOrValue<string> | null, newFeeManager?: PromiseOrValue<string> | null): FeeManagerUpdatedEventFilter;
        FeeManagerUpdated(_poolManager?: PromiseOrValue<string> | null, newFeeManager?: PromiseOrValue<string> | null): FeeManagerUpdatedEventFilter;
        'MintedStablecoins(address,uint256,uint256)'(_poolManager?: PromiseOrValue<string> | null, amount?: null, amountForUserInStable?: null): MintedStablecoinsEventFilter;
        MintedStablecoins(_poolManager?: PromiseOrValue<string> | null, amount?: null, amountForUserInStable?: null): MintedStablecoinsEventFilter;
        'OracleUpdated(address,address)'(_poolManager?: PromiseOrValue<string> | null, _oracle?: PromiseOrValue<string> | null): OracleUpdatedEventFilter;
        OracleUpdated(_poolManager?: PromiseOrValue<string> | null, _oracle?: PromiseOrValue<string> | null): OracleUpdatedEventFilter;
        'Paused(bytes32)'(name?: null): PausedEventFilter;
        Paused(name?: null): PausedEventFilter;
        'RoleAdminChanged(bytes32,bytes32,bytes32)'(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        RoleAdminChanged(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        'RoleGranted(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        RoleGranted(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        'RoleRevoked(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        RoleRevoked(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        'SLPsIncentivesUpdated(address,uint64,uint64)'(_poolManager?: PromiseOrValue<string> | null, _feesForSLPs?: null, _interestsForSLPs?: null): SLPsIncentivesUpdatedEventFilter;
        SLPsIncentivesUpdated(_poolManager?: PromiseOrValue<string> | null, _feesForSLPs?: null, _interestsForSLPs?: null): SLPsIncentivesUpdatedEventFilter;
        'SanRateUpdated(address,uint256)'(_token?: PromiseOrValue<string> | null, _newSanRate?: null): SanRateUpdatedEventFilter;
        SanRateUpdated(_token?: PromiseOrValue<string> | null, _newSanRate?: null): SanRateUpdatedEventFilter;
        'StocksUsersUpdated(address,uint256)'(_poolManager?: PromiseOrValue<string> | null, _stocksUsers?: null): StocksUsersUpdatedEventFilter;
        StocksUsersUpdated(_poolManager?: PromiseOrValue<string> | null, _stocksUsers?: null): StocksUsersUpdatedEventFilter;
        'Unpaused(bytes32)'(name?: null): UnpausedEventFilter;
        Unpaused(name?: null): UnpausedEventFilter;
    };
    estimateGas: {
        BASE_PARAMS(overrides?: CallOverrides): Promise<BigNumber>;
        BASE_TOKENS(overrides?: CallOverrides): Promise<BigNumber>;
        CORE_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        GOVERNOR_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        GUARDIAN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        SLP(overrides?: CallOverrides): Promise<BigNumber>;
        STABLE(overrides?: CallOverrides): Promise<BigNumber>;
        accumulateInterest(gain: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addGovernor(governor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        agToken(overrides?: CallOverrides): Promise<BigNumber>;
        burn(amount: PromiseOrValue<BigNumberish>, burner: PromiseOrValue<string>, dest: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, minCollatAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        collateralMap(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        convertToSLP(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        deploy(governorList: PromiseOrValue<string>[], guardian: PromiseOrValue<string>, _agToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        deployCollateral(poolManager: PromiseOrValue<string>, perpetualManager: PromiseOrValue<string>, feeManager: PromiseOrValue<string>, oracle: PromiseOrValue<string>, sanToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        deposit(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getCollateralRatio(overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getStocksUsers(overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(core_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        mint(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, minStableAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        pause(agent: PromiseOrValue<BytesLike>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        rebalanceStocksUsers(amount: PromiseOrValue<BigNumberish>, poolManagerUp: PromiseOrValue<string>, poolManagerDown: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeGovernor(governor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revokeCollateral(poolManager: PromiseOrValue<string>, settlementContract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revokeGuardian(oldGuardian: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setCapOnStableAndMaxInterests(_capOnStableMinted: PromiseOrValue<BigNumberish>, _maxInterestsDistributed: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setCore(newCore: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFeeKeeper(_bonusMalusMint: PromiseOrValue<BigNumberish>, _bonusMalusBurn: PromiseOrValue<BigNumberish>, _slippage: PromiseOrValue<BigNumberish>, _slippageFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFeeManager(newFeeManager: PromiseOrValue<string>, oldFeeManager: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setGuardian(newGuardian: PromiseOrValue<string>, oldGuardian: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setIncentivesForSLPs(_feesForSLPs: PromiseOrValue<BigNumberish>, _interestsForSLPs: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setOracle(_oracle: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setTargetHAHedge(_targetHAHedge: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setUserFees(poolManager: PromiseOrValue<string>, _xFee: PromiseOrValue<BigNumberish>[], _yFee: PromiseOrValue<BigNumberish>[], _mint: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        signalLoss(loss: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unpause(agent: PromiseOrValue<BytesLike>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateStocksUsers(amount: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdraw(amount: PromiseOrValue<BigNumberish>, burner: PromiseOrValue<string>, dest: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        BASE_PARAMS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        BASE_TOKENS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        CORE_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        GOVERNOR_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        GUARDIAN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        SLP(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        STABLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        accumulateInterest(gain: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addGovernor(governor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        agToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        burn(amount: PromiseOrValue<BigNumberish>, burner: PromiseOrValue<string>, dest: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, minCollatAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        collateralMap(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        convertToSLP(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        deploy(governorList: PromiseOrValue<string>[], guardian: PromiseOrValue<string>, _agToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        deployCollateral(poolManager: PromiseOrValue<string>, perpetualManager: PromiseOrValue<string>, feeManager: PromiseOrValue<string>, oracle: PromiseOrValue<string>, sanToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        deposit(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getCollateralRatio(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getStocksUsers(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(core_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        mint(amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, minStableAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        pause(agent: PromiseOrValue<BytesLike>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        rebalanceStocksUsers(amount: PromiseOrValue<BigNumberish>, poolManagerUp: PromiseOrValue<string>, poolManagerDown: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeGovernor(governor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revokeCollateral(poolManager: PromiseOrValue<string>, settlementContract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revokeGuardian(oldGuardian: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setCapOnStableAndMaxInterests(_capOnStableMinted: PromiseOrValue<BigNumberish>, _maxInterestsDistributed: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setCore(newCore: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFeeKeeper(_bonusMalusMint: PromiseOrValue<BigNumberish>, _bonusMalusBurn: PromiseOrValue<BigNumberish>, _slippage: PromiseOrValue<BigNumberish>, _slippageFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFeeManager(newFeeManager: PromiseOrValue<string>, oldFeeManager: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setGuardian(newGuardian: PromiseOrValue<string>, oldGuardian: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setIncentivesForSLPs(_feesForSLPs: PromiseOrValue<BigNumberish>, _interestsForSLPs: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setOracle(_oracle: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setTargetHAHedge(_targetHAHedge: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setUserFees(poolManager: PromiseOrValue<string>, _xFee: PromiseOrValue<BigNumberish>[], _yFee: PromiseOrValue<BigNumberish>[], _mint: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        signalLoss(loss: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unpause(agent: PromiseOrValue<BytesLike>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateStocksUsers(amount: PromiseOrValue<BigNumberish>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdraw(amount: PromiseOrValue<BigNumberish>, burner: PromiseOrValue<string>, dest: PromiseOrValue<string>, poolManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
