import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common"; export declare namespace IPoolFactory { type PoolKeyStruct = { base: AddressLike; quote: AddressLike; oracleAdapter: AddressLike; strike: BigNumberish; maturity: BigNumberish; isCallPool: boolean; }; type PoolKeyStructOutput = [ base: string, quote: string, oracleAdapter: string, strike: bigint, maturity: bigint, isCallPool: boolean ] & { base: string; quote: string; oracleAdapter: string; strike: bigint; maturity: bigint; isCallPool: boolean; }; } export declare namespace OrderbookStream { type SignatureStruct = { r: BytesLike; s: BytesLike; v: BigNumberish; }; type SignatureStructOutput = [r: string, s: string, v: bigint] & { r: string; s: string; v: bigint; }; type QuoteStruct = { poolKey: IPoolFactory.PoolKeyStruct; provider: AddressLike; taker: AddressLike; price: BigNumberish; size: BigNumberish; isBuy: boolean; deadline: BigNumberish; salt: BigNumberish; signature: OrderbookStream.SignatureStruct; }; type QuoteStructOutput = [ poolKey: IPoolFactory.PoolKeyStructOutput, provider: string, taker: string, price: bigint, size: bigint, isBuy: boolean, deadline: bigint, salt: bigint, signature: OrderbookStream.SignatureStructOutput ] & { poolKey: IPoolFactory.PoolKeyStructOutput; provider: string; taker: string; price: bigint; size: bigint; isBuy: boolean; deadline: bigint; salt: bigint; signature: OrderbookStream.SignatureStructOutput; }; } export interface OrderbookStreamInterface extends Interface { getFunction(nameOrSignature: "add"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "PublishQuote"): EventFragment; encodeFunctionData(functionFragment: "add", values: [OrderbookStream.QuoteStruct[]]): string; decodeFunctionResult(functionFragment: "add", data: BytesLike): Result; } export declare namespace PublishQuoteEvent { type InputTuple = [ poolKeyHash: IPoolFactory.PoolKeyStruct, provider: AddressLike, taker: AddressLike, price: BigNumberish, size: BigNumberish, isBuy: boolean, deadline: BigNumberish, salt: BigNumberish, signature: OrderbookStream.SignatureStruct, poolKey: IPoolFactory.PoolKeyStruct ]; type OutputTuple = [ poolKeyHash: IPoolFactory.PoolKeyStructOutput, provider: string, taker: string, price: bigint, size: bigint, isBuy: boolean, deadline: bigint, salt: bigint, signature: OrderbookStream.SignatureStructOutput, poolKey: IPoolFactory.PoolKeyStructOutput ]; interface OutputObject { poolKeyHash: IPoolFactory.PoolKeyStructOutput; provider: string; taker: string; price: bigint; size: bigint; isBuy: boolean; deadline: bigint; salt: bigint; signature: OrderbookStream.SignatureStructOutput; poolKey: IPoolFactory.PoolKeyStructOutput; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface OrderbookStream extends BaseContract { connect(runner?: ContractRunner | null): OrderbookStream; waitForDeployment(): Promise; interface: OrderbookStreamInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; add: TypedContractMethod<[ quote: OrderbookStream.QuoteStruct[] ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "add"): TypedContractMethod<[ quote: OrderbookStream.QuoteStruct[] ], [ void ], "nonpayable">; getEvent(key: "PublishQuote"): TypedContractEvent; filters: { "PublishQuote(tuple,address,address,uint256,uint256,bool,uint256,uint256,tuple,tuple)": TypedContractEvent; PublishQuote: TypedContractEvent; }; }