import { BigNumberish, BytesLike } from 'ethers'; import { PoolKey, PoolMinimal } from './pool'; import { Signature } from './signature'; export declare type QuoteT = Quote | SerializedQuote; export declare type QuoteSaltOptionalT = QuoteSaltOptional | SerializedQuoteSaltOptional; export declare type QuoteWithSignatureT = QuoteWithSignature | SerializedQuoteWithSignature; export declare type QuoteOrFillableQuoteT = QuoteWithSignatureT | FillableQuote; export interface Quote { poolKey: PoolKey; provider: string; taker: string; price: bigint; size: bigint; isBuy: boolean; deadline: bigint; salt: bigint; } export interface QuoteWithoutSalt extends Omit { } export interface QuoteOB extends Omit { } export interface QuoteOBMessage { provider: string; taker: string; price: string; size: string; isBuy: boolean; deadline: string; salt: string; } export interface QuoteSaltOptional extends QuoteWithoutSalt { salt?: bigint; } export interface QuoteWithSignature extends Quote { chainId: string; signature: Signature; } export interface OrderbookQuote extends SerializedQuote { chainId: string; signature: Signature; quoteId: string; poolAddress: string; fillableSize: string; ts: number; } export interface SerializedQuote { poolKey: PoolKey; provider: string; taker: string; price: string; size: string; isBuy: boolean; deadline: number; salt: number; } export interface SerializedQuoteWithoutSalt extends Omit { } export interface SerializedQuoteSaltOptional extends SerializedQuoteWithoutSalt { salt?: number; } export interface SerializedQuoteWithSignature extends SerializedQuote { chainId: string; signature: Signature; } export interface SerializedIndexedQuote extends SerializedQuoteWithSignature { createdAt: number; } export interface FillableQuote extends QuoteSaltOptional { createdAt?: number; pool: PoolMinimal; takerFee: BigNumberish; approvalTarget: string; approvalAmount: BigNumberish; to: string; data: BytesLike; } export interface Domain { name: string; version: string; chainId: string; verifyingContract: string; } export interface InvalidQuote { quote: OrderbookQuote; message: string; } export interface PublishQuoteResponse { created: OrderbookQuote[]; failed: InvalidQuote[]; exists: OrderbookQuote[]; } export interface GetOrdersResponse { validQuotes: OrderbookQuote[]; invalidQuotes: InvalidQuote[]; }