import { AbiType, DecodedTuple, DecodedType, T } from './abi'; import { Call, LogFilter, LogItem, LogTopic } from './types'; export { T }; export declare type SolidityType = AbiType; export declare type OrArray = T | T[]; export declare type EventQuery = { [key in keyof Spec]?: Spec[key] extends SolidityType ? (OrArray> | null) : never; }; export interface EventType { topic0: LogTopic; (filter: EventQuery): LogFilter; decode(item: LogItem): DecodedTuple; } export interface View { (params: Params): Call; } export declare function View(methodName: string, params: ParamsSpec, returns: ResultSpec): View, DecodedTuple>; export declare function Method(methodName: string, params: ParamsSpec): View, void>; export declare function EventType(name: string, paramsSpec: ParamSpec, index: (keyof ParamSpec)[]): EventType;