import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, 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 VeBalanceStruct = {
    bias: PromiseOrValue<BigNumberish>;
    slope: PromiseOrValue<BigNumberish>;
};
export declare type VeBalanceStructOutput = [BigNumber, BigNumber] & {
    bias: BigNumber;
    slope: BigNumber;
};
export declare type CheckpointStruct = {
    timestamp: PromiseOrValue<BigNumberish>;
    value: VeBalanceStruct;
};
export declare type CheckpointStructOutput = [BigNumber, VeBalanceStructOutput] & {
    timestamp: BigNumber;
    value: VeBalanceStructOutput;
};
export interface PendleVotingEscrowInterface extends utils.Interface {
    functions: {
        'MAX_LOCK_TIME()': FunctionFragment;
        'MIN_LOCK_TIME()': FunctionFragment;
        'WEEK()': FunctionFragment;
        'addDestinationContract(address,uint256)': FunctionFragment;
        'approxDstExecutionGas()': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'broadcastTotalSupply(uint256[])': FunctionFragment;
        'broadcastUserPosition(address,uint256[])': FunctionFragment;
        'claimOwnership()': FunctionFragment;
        'getAllDestinationContracts()': FunctionFragment;
        'getBroadcastPositionFee(uint256[])': FunctionFragment;
        'getBroadcastSupplyFee(uint256[])': FunctionFragment;
        'getUserHistoryAt(address,uint256)': FunctionFragment;
        'getUserHistoryLength(address)': FunctionFragment;
        'increaseLockPosition(uint128,uint128)': FunctionFragment;
        'increaseLockPositionAndBroadcast(uint128,uint128,uint256[])': FunctionFragment;
        'lastSlopeChangeAppliedAt()': FunctionFragment;
        'owner()': FunctionFragment;
        'pendingOwner()': FunctionFragment;
        'pendle()': FunctionFragment;
        'pendleMsgSendEndpoint()': FunctionFragment;
        'positionData(address)': FunctionFragment;
        'setApproxDstExecutionGas(uint256)': FunctionFragment;
        'slopeChanges(uint128)': FunctionFragment;
        'totalSupplyAndBalanceCurrent(address)': FunctionFragment;
        'totalSupplyAt(uint128)': FunctionFragment;
        'totalSupplyCurrent()': FunctionFragment;
        'totalSupplyStored()': FunctionFragment;
        'transferOwnership(address,bool,bool)': FunctionFragment;
        'withdraw()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'MAX_LOCK_TIME' | 'MIN_LOCK_TIME' | 'WEEK' | 'addDestinationContract' | 'approxDstExecutionGas' | 'balanceOf' | 'broadcastTotalSupply' | 'broadcastUserPosition' | 'claimOwnership' | 'getAllDestinationContracts' | 'getBroadcastPositionFee' | 'getBroadcastSupplyFee' | 'getUserHistoryAt' | 'getUserHistoryLength' | 'increaseLockPosition' | 'increaseLockPositionAndBroadcast' | 'lastSlopeChangeAppliedAt' | 'owner' | 'pendingOwner' | 'pendle' | 'pendleMsgSendEndpoint' | 'positionData' | 'setApproxDstExecutionGas' | 'slopeChanges' | 'totalSupplyAndBalanceCurrent' | 'totalSupplyAt' | 'totalSupplyCurrent' | 'totalSupplyStored' | 'transferOwnership' | 'withdraw'): FunctionFragment;
    encodeFunctionData(functionFragment: 'MAX_LOCK_TIME', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MIN_LOCK_TIME', values?: undefined): string;
    encodeFunctionData(functionFragment: 'WEEK', values?: undefined): string;
    encodeFunctionData(functionFragment: 'addDestinationContract', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'approxDstExecutionGas', values?: undefined): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'broadcastTotalSupply', values: [PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'broadcastUserPosition', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'claimOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getAllDestinationContracts', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getBroadcastPositionFee', values: [PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'getBroadcastSupplyFee', values: [PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'getUserHistoryAt', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getUserHistoryLength', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'increaseLockPosition', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'increaseLockPositionAndBroadcast', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'lastSlopeChangeAppliedAt', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pendingOwner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pendle', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pendleMsgSendEndpoint', values?: undefined): string;
    encodeFunctionData(functionFragment: 'positionData', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setApproxDstExecutionGas', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'slopeChanges', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'totalSupplyAndBalanceCurrent', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalSupplyAt', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'totalSupplyCurrent', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalSupplyStored', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>, PromiseOrValue<boolean>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'withdraw', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'MAX_LOCK_TIME', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MIN_LOCK_TIME', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'WEEK', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addDestinationContract', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approxDstExecutionGas', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'broadcastTotalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'broadcastUserPosition', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAllDestinationContracts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getBroadcastPositionFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getBroadcastSupplyFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserHistoryAt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserHistoryLength', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseLockPosition', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseLockPositionAndBroadcast', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastSlopeChangeAppliedAt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendleMsgSendEndpoint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'positionData', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setApproxDstExecutionGas', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'slopeChanges', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupplyAndBalanceCurrent', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupplyAt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupplyCurrent', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupplyStored', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    events: {
        'BroadcastTotalSupply(tuple,uint256[])': EventFragment;
        'BroadcastUserPosition(address,uint256[])': EventFragment;
        'Initialized(uint8)': EventFragment;
        'NewLockPosition(address,uint128,uint128)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'Withdraw(address,uint128)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'BroadcastTotalSupply'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BroadcastUserPosition'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Initialized'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NewLockPosition'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdraw'): EventFragment;
}
export interface BroadcastTotalSupplyEventObject {
    newTotalSupply: VeBalanceStructOutput;
    chainIds: BigNumber[];
}
export declare type BroadcastTotalSupplyEvent = TypedEvent<[
    VeBalanceStructOutput,
    BigNumber[]
], BroadcastTotalSupplyEventObject>;
export declare type BroadcastTotalSupplyEventFilter = TypedEventFilter<BroadcastTotalSupplyEvent>;
export interface BroadcastUserPositionEventObject {
    user: string;
    chainIds: BigNumber[];
}
export declare type BroadcastUserPositionEvent = TypedEvent<[string, BigNumber[]], BroadcastUserPositionEventObject>;
export declare type BroadcastUserPositionEventFilter = TypedEventFilter<BroadcastUserPositionEvent>;
export interface InitializedEventObject {
    version: number;
}
export declare type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface NewLockPositionEventObject {
    user: string;
    amount: BigNumber;
    expiry: BigNumber;
}
export declare type NewLockPositionEvent = TypedEvent<[string, BigNumber, BigNumber], NewLockPositionEventObject>;
export declare type NewLockPositionEventFilter = TypedEventFilter<NewLockPositionEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[string, string], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface WithdrawEventObject {
    user: string;
    amount: BigNumber;
}
export declare type WithdrawEvent = TypedEvent<[string, BigNumber], WithdrawEventObject>;
export declare type WithdrawEventFilter = TypedEventFilter<WithdrawEvent>;
export interface PendleVotingEscrow extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: PendleVotingEscrowInterface;
    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: {
        MAX_LOCK_TIME(overrides?: CallOverrides): Promise<[BigNumber]>;
        MIN_LOCK_TIME(overrides?: CallOverrides): Promise<[BigNumber]>;
        WEEK(overrides?: CallOverrides): Promise<[BigNumber]>;
        addDestinationContract(_address: PromiseOrValue<string>, _chainId: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        approxDstExecutionGas(overrides?: CallOverrides): Promise<[BigNumber]>;
        balanceOf(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        broadcastTotalSupply(chainIds: PromiseOrValue<BigNumberish>[], overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        broadcastUserPosition(user: PromiseOrValue<string>, chainIds: PromiseOrValue<BigNumberish>[], overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getAllDestinationContracts(overrides?: CallOverrides): Promise<[BigNumber[], string[]] & {
            chainIds: BigNumber[];
            addrs: string[];
        }>;
        getBroadcastPositionFee(chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<[BigNumber] & {
            fee: BigNumber;
        }>;
        getBroadcastSupplyFee(chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<[BigNumber] & {
            fee: BigNumber;
        }>;
        getUserHistoryAt(user: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[CheckpointStructOutput]>;
        getUserHistoryLength(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        increaseLockPosition(additionalAmountToLock: PromiseOrValue<BigNumberish>, newExpiry: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        increaseLockPositionAndBroadcast(additionalAmountToLock: PromiseOrValue<BigNumberish>, newExpiry: PromiseOrValue<BigNumberish>, chainIds: PromiseOrValue<BigNumberish>[], overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        lastSlopeChangeAppliedAt(overrides?: CallOverrides): Promise<[BigNumber]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        pendingOwner(overrides?: CallOverrides): Promise<[string]>;
        pendle(overrides?: CallOverrides): Promise<[string]>;
        pendleMsgSendEndpoint(overrides?: CallOverrides): Promise<[string]>;
        positionData(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            amount: BigNumber;
            expiry: BigNumber;
        }>;
        setApproxDstExecutionGas(gas: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        slopeChanges(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalSupplyAndBalanceCurrent(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        totalSupplyAt(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalSupplyCurrent(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        totalSupplyStored(overrides?: CallOverrides): Promise<[BigNumber]>;
        transferOwnership(newOwner: PromiseOrValue<string>, direct: PromiseOrValue<boolean>, renounce: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    MAX_LOCK_TIME(overrides?: CallOverrides): Promise<BigNumber>;
    MIN_LOCK_TIME(overrides?: CallOverrides): Promise<BigNumber>;
    WEEK(overrides?: CallOverrides): Promise<BigNumber>;
    addDestinationContract(_address: PromiseOrValue<string>, _chainId: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    approxDstExecutionGas(overrides?: CallOverrides): Promise<BigNumber>;
    balanceOf(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    broadcastTotalSupply(chainIds: PromiseOrValue<BigNumberish>[], overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    broadcastUserPosition(user: PromiseOrValue<string>, chainIds: PromiseOrValue<BigNumberish>[], overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getAllDestinationContracts(overrides?: CallOverrides): Promise<[BigNumber[], string[]] & {
        chainIds: BigNumber[];
        addrs: string[];
    }>;
    getBroadcastPositionFee(chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<BigNumber>;
    getBroadcastSupplyFee(chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<BigNumber>;
    getUserHistoryAt(user: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<CheckpointStructOutput>;
    getUserHistoryLength(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    increaseLockPosition(additionalAmountToLock: PromiseOrValue<BigNumberish>, newExpiry: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    increaseLockPositionAndBroadcast(additionalAmountToLock: PromiseOrValue<BigNumberish>, newExpiry: PromiseOrValue<BigNumberish>, chainIds: PromiseOrValue<BigNumberish>[], overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    lastSlopeChangeAppliedAt(overrides?: CallOverrides): Promise<BigNumber>;
    owner(overrides?: CallOverrides): Promise<string>;
    pendingOwner(overrides?: CallOverrides): Promise<string>;
    pendle(overrides?: CallOverrides): Promise<string>;
    pendleMsgSendEndpoint(overrides?: CallOverrides): Promise<string>;
    positionData(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        amount: BigNumber;
        expiry: BigNumber;
    }>;
    setApproxDstExecutionGas(gas: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    slopeChanges(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    totalSupplyAndBalanceCurrent(user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    totalSupplyAt(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    totalSupplyCurrent(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    totalSupplyStored(overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnership(newOwner: PromiseOrValue<string>, direct: PromiseOrValue<boolean>, renounce: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdraw(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        MAX_LOCK_TIME(overrides?: CallOverrides): Promise<BigNumber>;
        MIN_LOCK_TIME(overrides?: CallOverrides): Promise<BigNumber>;
        WEEK(overrides?: CallOverrides): Promise<BigNumber>;
        addDestinationContract(_address: PromiseOrValue<string>, _chainId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        approxDstExecutionGas(overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        broadcastTotalSupply(chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        broadcastUserPosition(user: PromiseOrValue<string>, chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        claimOwnership(overrides?: CallOverrides): Promise<void>;
        getAllDestinationContracts(overrides?: CallOverrides): Promise<[BigNumber[], string[]] & {
            chainIds: BigNumber[];
            addrs: string[];
        }>;
        getBroadcastPositionFee(chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<BigNumber>;
        getBroadcastSupplyFee(chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<BigNumber>;
        getUserHistoryAt(user: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<CheckpointStructOutput>;
        getUserHistoryLength(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        increaseLockPosition(additionalAmountToLock: PromiseOrValue<BigNumberish>, newExpiry: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        increaseLockPositionAndBroadcast(additionalAmountToLock: PromiseOrValue<BigNumberish>, newExpiry: PromiseOrValue<BigNumberish>, chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<BigNumber>;
        lastSlopeChangeAppliedAt(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<string>;
        pendingOwner(overrides?: CallOverrides): Promise<string>;
        pendle(overrides?: CallOverrides): Promise<string>;
        pendleMsgSendEndpoint(overrides?: CallOverrides): Promise<string>;
        positionData(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            amount: BigNumber;
            expiry: BigNumber;
        }>;
        setApproxDstExecutionGas(gas: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        slopeChanges(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupplyAndBalanceCurrent(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        totalSupplyAt(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupplyCurrent(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupplyStored(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, direct: PromiseOrValue<boolean>, renounce: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        withdraw(overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'BroadcastTotalSupply(tuple,uint256[])'(newTotalSupply?: null, chainIds?: null): BroadcastTotalSupplyEventFilter;
        BroadcastTotalSupply(newTotalSupply?: null, chainIds?: null): BroadcastTotalSupplyEventFilter;
        'BroadcastUserPosition(address,uint256[])'(user?: PromiseOrValue<string> | null, chainIds?: null): BroadcastUserPositionEventFilter;
        BroadcastUserPosition(user?: PromiseOrValue<string> | null, chainIds?: null): BroadcastUserPositionEventFilter;
        'Initialized(uint8)'(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        'NewLockPosition(address,uint128,uint128)'(user?: PromiseOrValue<string> | null, amount?: null, expiry?: null): NewLockPositionEventFilter;
        NewLockPosition(user?: PromiseOrValue<string> | null, amount?: null, expiry?: null): NewLockPositionEventFilter;
        'OwnershipTransferred(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        'Withdraw(address,uint128)'(user?: PromiseOrValue<string> | null, amount?: null): WithdrawEventFilter;
        Withdraw(user?: PromiseOrValue<string> | null, amount?: null): WithdrawEventFilter;
    };
    estimateGas: {
        MAX_LOCK_TIME(overrides?: CallOverrides): Promise<BigNumber>;
        MIN_LOCK_TIME(overrides?: CallOverrides): Promise<BigNumber>;
        WEEK(overrides?: CallOverrides): Promise<BigNumber>;
        addDestinationContract(_address: PromiseOrValue<string>, _chainId: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        approxDstExecutionGas(overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        broadcastTotalSupply(chainIds: PromiseOrValue<BigNumberish>[], overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        broadcastUserPosition(user: PromiseOrValue<string>, chainIds: PromiseOrValue<BigNumberish>[], overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getAllDestinationContracts(overrides?: CallOverrides): Promise<BigNumber>;
        getBroadcastPositionFee(chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<BigNumber>;
        getBroadcastSupplyFee(chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<BigNumber>;
        getUserHistoryAt(user: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserHistoryLength(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        increaseLockPosition(additionalAmountToLock: PromiseOrValue<BigNumberish>, newExpiry: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        increaseLockPositionAndBroadcast(additionalAmountToLock: PromiseOrValue<BigNumberish>, newExpiry: PromiseOrValue<BigNumberish>, chainIds: PromiseOrValue<BigNumberish>[], overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        lastSlopeChangeAppliedAt(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        pendingOwner(overrides?: CallOverrides): Promise<BigNumber>;
        pendle(overrides?: CallOverrides): Promise<BigNumber>;
        pendleMsgSendEndpoint(overrides?: CallOverrides): Promise<BigNumber>;
        positionData(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        setApproxDstExecutionGas(gas: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        slopeChanges(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupplyAndBalanceCurrent(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        totalSupplyAt(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupplyCurrent(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        totalSupplyStored(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, direct: PromiseOrValue<boolean>, renounce: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        MAX_LOCK_TIME(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MIN_LOCK_TIME(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        WEEK(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addDestinationContract(_address: PromiseOrValue<string>, _chainId: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        approxDstExecutionGas(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOf(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        broadcastTotalSupply(chainIds: PromiseOrValue<BigNumberish>[], overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        broadcastUserPosition(user: PromiseOrValue<string>, chainIds: PromiseOrValue<BigNumberish>[], overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getAllDestinationContracts(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getBroadcastPositionFee(chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getBroadcastSupplyFee(chainIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserHistoryAt(user: PromiseOrValue<string>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserHistoryLength(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseLockPosition(additionalAmountToLock: PromiseOrValue<BigNumberish>, newExpiry: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        increaseLockPositionAndBroadcast(additionalAmountToLock: PromiseOrValue<BigNumberish>, newExpiry: PromiseOrValue<BigNumberish>, chainIds: PromiseOrValue<BigNumberish>[], overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        lastSlopeChangeAppliedAt(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendleMsgSendEndpoint(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        positionData(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setApproxDstExecutionGas(gas: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        slopeChanges(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupplyAndBalanceCurrent(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        totalSupplyAt(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupplyCurrent(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        totalSupplyStored(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, direct: PromiseOrValue<boolean>, renounce: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
