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.js'; export interface ITrancheInterface extends utils.Interface { functions: { 'DOMAIN_SEPARATOR()': FunctionFragment; 'allowance(address,address)': FunctionFragment; 'approve(address,uint256)': FunctionFragment; 'balanceOf(address)': FunctionFragment; 'deposit(uint256,address)': FunctionFragment; 'hitSpeedbump()': FunctionFragment; 'interestSupply()': FunctionFragment; 'nonces(address)': FunctionFragment; 'permit(address,address,uint256,uint256,uint8,bytes32,bytes32)': FunctionFragment; 'position()': FunctionFragment; 'prefundedDeposit(address)': FunctionFragment; 'speedbump()': FunctionFragment; 'totalSupply()': FunctionFragment; 'transfer(address,uint256)': FunctionFragment; 'transferFrom(address,address,uint256)': FunctionFragment; 'underlying()': FunctionFragment; 'unlockTimestamp()': FunctionFragment; 'withdrawInterest(uint256,address)': FunctionFragment; 'withdrawPrincipal(uint256,address)': FunctionFragment; }; getFunction(nameOrSignatureOrTopic: 'DOMAIN_SEPARATOR' | 'allowance' | 'approve' | 'balanceOf' | 'deposit' | 'hitSpeedbump' | 'interestSupply' | 'nonces' | 'permit' | 'position' | 'prefundedDeposit' | 'speedbump' | 'totalSupply' | 'transfer' | 'transferFrom' | 'underlying' | 'unlockTimestamp' | 'withdrawInterest' | 'withdrawPrincipal'): FunctionFragment; encodeFunctionData(functionFragment: 'DOMAIN_SEPARATOR', values?: undefined): string; encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: 'hitSpeedbump', values?: undefined): string; encodeFunctionData(functionFragment: 'interestSupply', values?: undefined): string; encodeFunctionData(functionFragment: 'nonces', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'permit', values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: 'position', values?: undefined): string; encodeFunctionData(functionFragment: 'prefundedDeposit', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'speedbump', values?: undefined): string; encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string; encodeFunctionData(functionFragment: 'transfer', values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: 'transferFrom', values: [PromiseOrValue, PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: 'underlying', values?: undefined): string; encodeFunctionData(functionFragment: 'unlockTimestamp', values?: undefined): string; encodeFunctionData(functionFragment: 'withdrawInterest', values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: 'withdrawPrincipal', values: [PromiseOrValue, PromiseOrValue]): string; decodeFunctionResult(functionFragment: 'DOMAIN_SEPARATOR', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'hitSpeedbump', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'interestSupply', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'nonces', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'permit', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'position', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'prefundedDeposit', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'speedbump', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'underlying', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'unlockTimestamp', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'withdrawInterest', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'withdrawPrincipal', data: BytesLike): Result; events: { 'Approval(address,address,uint256)': EventFragment; 'Transfer(address,address,uint256)': EventFragment; }; getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment; getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment; } export interface ApprovalEventObject { owner: string; spender: string; value: BigNumber; } export declare type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>; export declare type ApprovalEventFilter = TypedEventFilter; export interface TransferEventObject { from: string; to: string; value: BigNumber; } export declare type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>; export declare type TransferEventFilter = TypedEventFilter; export interface ITranche extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: ITrancheInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>; allowance(owner: PromiseOrValue, spender: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; approve(spender: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; deposit(_shares: PromiseOrValue, destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; hitSpeedbump(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; interestSupply(overrides?: CallOverrides): Promise<[BigNumber]>; nonces(owner: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; permit(owner: PromiseOrValue, spender: PromiseOrValue, value: PromiseOrValue, deadline: PromiseOrValue, v: PromiseOrValue, r: PromiseOrValue, s: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; position(overrides?: CallOverrides): Promise<[string]>; prefundedDeposit(_destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; speedbump(overrides?: CallOverrides): Promise<[BigNumber]>; totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; transfer(to: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; transferFrom(from: PromiseOrValue, to: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; underlying(overrides?: CallOverrides): Promise<[string]>; unlockTimestamp(overrides?: CallOverrides): Promise<[BigNumber]>; withdrawInterest(_amount: PromiseOrValue, _destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; withdrawPrincipal(_amount: PromiseOrValue, _destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; allowance(owner: PromiseOrValue, spender: PromiseOrValue, overrides?: CallOverrides): Promise; approve(spender: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; deposit(_shares: PromiseOrValue, destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; hitSpeedbump(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; interestSupply(overrides?: CallOverrides): Promise; nonces(owner: PromiseOrValue, overrides?: CallOverrides): Promise; permit(owner: PromiseOrValue, spender: PromiseOrValue, value: PromiseOrValue, deadline: PromiseOrValue, v: PromiseOrValue, r: PromiseOrValue, s: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; position(overrides?: CallOverrides): Promise; prefundedDeposit(_destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; speedbump(overrides?: CallOverrides): Promise; totalSupply(overrides?: CallOverrides): Promise; transfer(to: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; transferFrom(from: PromiseOrValue, to: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; underlying(overrides?: CallOverrides): Promise; unlockTimestamp(overrides?: CallOverrides): Promise; withdrawInterest(_amount: PromiseOrValue, _destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; withdrawPrincipal(_amount: PromiseOrValue, _destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; callStatic: { DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; allowance(owner: PromiseOrValue, spender: PromiseOrValue, overrides?: CallOverrides): Promise; approve(spender: PromiseOrValue, amount: PromiseOrValue, overrides?: CallOverrides): Promise; balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; deposit(_shares: PromiseOrValue, destination: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; hitSpeedbump(overrides?: CallOverrides): Promise; interestSupply(overrides?: CallOverrides): Promise; nonces(owner: PromiseOrValue, overrides?: CallOverrides): Promise; permit(owner: PromiseOrValue, spender: PromiseOrValue, value: PromiseOrValue, deadline: PromiseOrValue, v: PromiseOrValue, r: PromiseOrValue, s: PromiseOrValue, overrides?: CallOverrides): Promise; position(overrides?: CallOverrides): Promise; prefundedDeposit(_destination: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; speedbump(overrides?: CallOverrides): Promise; totalSupply(overrides?: CallOverrides): Promise; transfer(to: PromiseOrValue, amount: PromiseOrValue, overrides?: CallOverrides): Promise; transferFrom(from: PromiseOrValue, to: PromiseOrValue, amount: PromiseOrValue, overrides?: CallOverrides): Promise; underlying(overrides?: CallOverrides): Promise; unlockTimestamp(overrides?: CallOverrides): Promise; withdrawInterest(_amount: PromiseOrValue, _destination: PromiseOrValue, overrides?: CallOverrides): Promise; withdrawPrincipal(_amount: PromiseOrValue, _destination: PromiseOrValue, overrides?: CallOverrides): Promise; }; filters: { 'Approval(address,address,uint256)'(owner?: PromiseOrValue | null, spender?: PromiseOrValue | null, value?: null): ApprovalEventFilter; Approval(owner?: PromiseOrValue | null, spender?: PromiseOrValue | null, value?: null): ApprovalEventFilter; 'Transfer(address,address,uint256)'(from?: PromiseOrValue | null, to?: PromiseOrValue | null, value?: null): TransferEventFilter; Transfer(from?: PromiseOrValue | null, to?: PromiseOrValue | null, value?: null): TransferEventFilter; }; estimateGas: { DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; allowance(owner: PromiseOrValue, spender: PromiseOrValue, overrides?: CallOverrides): Promise; approve(spender: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; deposit(_shares: PromiseOrValue, destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; hitSpeedbump(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; interestSupply(overrides?: CallOverrides): Promise; nonces(owner: PromiseOrValue, overrides?: CallOverrides): Promise; permit(owner: PromiseOrValue, spender: PromiseOrValue, value: PromiseOrValue, deadline: PromiseOrValue, v: PromiseOrValue, r: PromiseOrValue, s: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; position(overrides?: CallOverrides): Promise; prefundedDeposit(_destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; speedbump(overrides?: CallOverrides): Promise; totalSupply(overrides?: CallOverrides): Promise; transfer(to: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; transferFrom(from: PromiseOrValue, to: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; underlying(overrides?: CallOverrides): Promise; unlockTimestamp(overrides?: CallOverrides): Promise; withdrawInterest(_amount: PromiseOrValue, _destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; withdrawPrincipal(_amount: PromiseOrValue, _destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; populateTransaction: { DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; allowance(owner: PromiseOrValue, spender: PromiseOrValue, overrides?: CallOverrides): Promise; approve(spender: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; deposit(_shares: PromiseOrValue, destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; hitSpeedbump(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; interestSupply(overrides?: CallOverrides): Promise; nonces(owner: PromiseOrValue, overrides?: CallOverrides): Promise; permit(owner: PromiseOrValue, spender: PromiseOrValue, value: PromiseOrValue, deadline: PromiseOrValue, v: PromiseOrValue, r: PromiseOrValue, s: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; position(overrides?: CallOverrides): Promise; prefundedDeposit(_destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; speedbump(overrides?: CallOverrides): Promise; totalSupply(overrides?: CallOverrides): Promise; transfer(to: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; transferFrom(from: PromiseOrValue, to: PromiseOrValue, amount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; underlying(overrides?: CallOverrides): Promise; unlockTimestamp(overrides?: CallOverrides): Promise; withdrawInterest(_amount: PromiseOrValue, _destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; withdrawPrincipal(_amount: PromiseOrValue, _destination: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; }