import { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from 'ethers'; import { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from './common'; export declare namespace OraclePrices { type OraclePriceStruct = { rate: BigNumberish; weight: BigNumberish; }; type OraclePriceStructOutput = [rate: bigint, weight: bigint] & { rate: bigint; weight: bigint; }; type DataStruct = { maxOracleWeight: BigNumberish; size: BigNumberish; oraclePrices: OraclePrices.OraclePriceStruct[]; }; type DataStructOutput = [ maxOracleWeight: bigint, size: bigint, oraclePrices: OraclePrices.OraclePriceStructOutput[] ] & { maxOracleWeight: bigint; size: bigint; oraclePrices: OraclePrices.OraclePriceStructOutput[]; }; } export interface OffchainOracleInterface extends Interface { getFunction(nameOrSignature: "addConnector" | "addOracle" | "connectors" | "getRate" | "getRateToEth" | "getRateToEthWithCustomConnectors" | "getRateToEthWithThreshold" | "getRateWithCustomConnectors" | "getRateWithThreshold" | "getRatesAndWeightsToEthWithCustomConnectors" | "getRatesAndWeightsWithCustomConnectors" | "multiWrapper" | "oracles" | "owner" | "removeConnector" | "removeOracle" | "renounceOwnership" | "setMultiWrapper" | "transferOwnership"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "ConnectorAdded" | "ConnectorRemoved" | "MultiWrapperUpdated" | "OracleAdded" | "OracleRemoved" | "OwnershipTransferred"): EventFragment; encodeFunctionData(functionFragment: "addConnector", values: [AddressLike]): string; encodeFunctionData(functionFragment: "addOracle", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "connectors", values?: undefined): string; encodeFunctionData(functionFragment: "getRate", values: [AddressLike, AddressLike, boolean]): string; encodeFunctionData(functionFragment: "getRateToEth", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "getRateToEthWithCustomConnectors", values: [AddressLike, boolean, AddressLike[], BigNumberish]): string; encodeFunctionData(functionFragment: "getRateToEthWithThreshold", values: [AddressLike, boolean, BigNumberish]): string; encodeFunctionData(functionFragment: "getRateWithCustomConnectors", values: [AddressLike, AddressLike, boolean, AddressLike[], BigNumberish]): string; encodeFunctionData(functionFragment: "getRateWithThreshold", values: [AddressLike, AddressLike, boolean, BigNumberish]): string; encodeFunctionData(functionFragment: "getRatesAndWeightsToEthWithCustomConnectors", values: [AddressLike, boolean, AddressLike[], BigNumberish]): string; encodeFunctionData(functionFragment: "getRatesAndWeightsWithCustomConnectors", values: [AddressLike, AddressLike, boolean, AddressLike[], BigNumberish]): string; encodeFunctionData(functionFragment: "multiWrapper", values?: undefined): string; encodeFunctionData(functionFragment: "oracles", values?: undefined): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "removeConnector", values: [AddressLike]): string; encodeFunctionData(functionFragment: "removeOracle", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "setMultiWrapper", values: [AddressLike]): string; encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "addConnector", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addOracle", data: BytesLike): Result; decodeFunctionResult(functionFragment: "connectors", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRateToEth", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRateToEthWithCustomConnectors", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRateToEthWithThreshold", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRateWithCustomConnectors", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRateWithThreshold", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRatesAndWeightsToEthWithCustomConnectors", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRatesAndWeightsWithCustomConnectors", data: BytesLike): Result; decodeFunctionResult(functionFragment: "multiWrapper", data: BytesLike): Result; decodeFunctionResult(functionFragment: "oracles", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeConnector", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeOracle", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setMultiWrapper", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result; } export declare namespace ConnectorAddedEvent { type InputTuple = [connector: AddressLike]; type OutputTuple = [connector: string]; interface OutputObject { connector: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ConnectorRemovedEvent { type InputTuple = [connector: AddressLike]; type OutputTuple = [connector: string]; interface OutputObject { connector: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MultiWrapperUpdatedEvent { type InputTuple = [multiWrapper: AddressLike]; type OutputTuple = [multiWrapper: string]; interface OutputObject { multiWrapper: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OracleAddedEvent { type InputTuple = [oracle: AddressLike, oracleType: BigNumberish]; type OutputTuple = [oracle: string, oracleType: bigint]; interface OutputObject { oracle: string; oracleType: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OracleRemovedEvent { type InputTuple = [oracle: AddressLike, oracleType: BigNumberish]; type OutputTuple = [oracle: string, oracleType: bigint]; interface OutputObject { oracle: string; oracleType: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OwnershipTransferredEvent { type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; type OutputTuple = [previousOwner: string, newOwner: string]; interface OutputObject { previousOwner: string; newOwner: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface OffchainOracle extends BaseContract { connect(runner?: ContractRunner | null): OffchainOracle; waitForDeployment(): Promise; interface: OffchainOracleInterface; 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; addConnector: TypedContractMethod<[ connector: AddressLike ], [ void ], "nonpayable">; addOracle: TypedContractMethod<[ oracle: AddressLike, oracleKind: BigNumberish ], [ void ], "nonpayable">; connectors: TypedContractMethod<[], [string[]], "view">; getRate: TypedContractMethod<[ srcToken: AddressLike, dstToken: AddressLike, useWrappers: boolean ], [ bigint ], "view">; getRateToEth: TypedContractMethod<[ srcToken: AddressLike, useSrcWrappers: boolean ], [ bigint ], "view">; getRateToEthWithCustomConnectors: TypedContractMethod<[ srcToken: AddressLike, useSrcWrappers: boolean, customConnectors: AddressLike[], thresholdFilter: BigNumberish ], [ bigint ], "view">; getRateToEthWithThreshold: TypedContractMethod<[ srcToken: AddressLike, useSrcWrappers: boolean, thresholdFilter: BigNumberish ], [ bigint ], "view">; getRateWithCustomConnectors: TypedContractMethod<[ srcToken: AddressLike, dstToken: AddressLike, useWrappers: boolean, customConnectors: AddressLike[], thresholdFilter: BigNumberish ], [ bigint ], "view">; getRateWithThreshold: TypedContractMethod<[ srcToken: AddressLike, dstToken: AddressLike, useWrappers: boolean, thresholdFilter: BigNumberish ], [ bigint ], "view">; getRatesAndWeightsToEthWithCustomConnectors: TypedContractMethod<[ srcToken: AddressLike, useSrcWrappers: boolean, customConnectors: AddressLike[], thresholdFilter: BigNumberish ], [ [ bigint, OraclePrices.DataStructOutput ] & { wrappedPrice: bigint; ratesAndWeights: OraclePrices.DataStructOutput; } ], "view">; getRatesAndWeightsWithCustomConnectors: TypedContractMethod<[ srcToken: AddressLike, dstToken: AddressLike, useWrappers: boolean, customConnectors: AddressLike[], thresholdFilter: BigNumberish ], [ [ bigint, OraclePrices.DataStructOutput ] & { wrappedPrice: bigint; ratesAndWeights: OraclePrices.DataStructOutput; } ], "view">; multiWrapper: TypedContractMethod<[], [string], "view">; oracles: TypedContractMethod<[ ], [ [string[], bigint[]] & { allOracles: string[]; oracleTypes: bigint[]; } ], "view">; owner: TypedContractMethod<[], [string], "view">; removeConnector: TypedContractMethod<[ connector: AddressLike ], [ void ], "nonpayable">; removeOracle: TypedContractMethod<[ oracle: AddressLike, oracleKind: BigNumberish ], [ void ], "nonpayable">; renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; setMultiWrapper: TypedContractMethod<[ _multiWrapper: AddressLike ], [ void ], "nonpayable">; transferOwnership: TypedContractMethod<[ newOwner: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "addConnector"): TypedContractMethod<[connector: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "addOracle"): TypedContractMethod<[ oracle: AddressLike, oracleKind: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "connectors"): TypedContractMethod<[], [string[]], "view">; getFunction(nameOrSignature: "getRate"): TypedContractMethod<[ srcToken: AddressLike, dstToken: AddressLike, useWrappers: boolean ], [ bigint ], "view">; getFunction(nameOrSignature: "getRateToEth"): TypedContractMethod<[ srcToken: AddressLike, useSrcWrappers: boolean ], [ bigint ], "view">; getFunction(nameOrSignature: "getRateToEthWithCustomConnectors"): TypedContractMethod<[ srcToken: AddressLike, useSrcWrappers: boolean, customConnectors: AddressLike[], thresholdFilter: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "getRateToEthWithThreshold"): TypedContractMethod<[ srcToken: AddressLike, useSrcWrappers: boolean, thresholdFilter: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "getRateWithCustomConnectors"): TypedContractMethod<[ srcToken: AddressLike, dstToken: AddressLike, useWrappers: boolean, customConnectors: AddressLike[], thresholdFilter: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "getRateWithThreshold"): TypedContractMethod<[ srcToken: AddressLike, dstToken: AddressLike, useWrappers: boolean, thresholdFilter: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "getRatesAndWeightsToEthWithCustomConnectors"): TypedContractMethod<[ srcToken: AddressLike, useSrcWrappers: boolean, customConnectors: AddressLike[], thresholdFilter: BigNumberish ], [ [ bigint, OraclePrices.DataStructOutput ] & { wrappedPrice: bigint; ratesAndWeights: OraclePrices.DataStructOutput; } ], "view">; getFunction(nameOrSignature: "getRatesAndWeightsWithCustomConnectors"): TypedContractMethod<[ srcToken: AddressLike, dstToken: AddressLike, useWrappers: boolean, customConnectors: AddressLike[], thresholdFilter: BigNumberish ], [ [ bigint, OraclePrices.DataStructOutput ] & { wrappedPrice: bigint; ratesAndWeights: OraclePrices.DataStructOutput; } ], "view">; getFunction(nameOrSignature: "multiWrapper"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "oracles"): TypedContractMethod<[ ], [ [string[], bigint[]] & { allOracles: string[]; oracleTypes: bigint[]; } ], "view">; getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "removeConnector"): TypedContractMethod<[connector: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "removeOracle"): TypedContractMethod<[ oracle: AddressLike, oracleKind: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "setMultiWrapper"): TypedContractMethod<[_multiWrapper: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; getEvent(key: "ConnectorAdded"): TypedContractEvent; getEvent(key: "ConnectorRemoved"): TypedContractEvent; getEvent(key: "MultiWrapperUpdated"): TypedContractEvent; getEvent(key: "OracleAdded"): TypedContractEvent; getEvent(key: "OracleRemoved"): TypedContractEvent; getEvent(key: "OwnershipTransferred"): TypedContractEvent; filters: { "ConnectorAdded(address)": TypedContractEvent; ConnectorAdded: TypedContractEvent; "ConnectorRemoved(address)": TypedContractEvent; ConnectorRemoved: TypedContractEvent; "MultiWrapperUpdated(address)": TypedContractEvent; MultiWrapperUpdated: TypedContractEvent; "OracleAdded(address,uint8)": TypedContractEvent; OracleAdded: TypedContractEvent; "OracleRemoved(address,uint8)": TypedContractEvent; OracleRemoved: TypedContractEvent; "OwnershipTransferred(address,address)": TypedContractEvent; OwnershipTransferred: TypedContractEvent; }; }