import { Context } from "./internal";
import { EventIdEnum as EventId, ModuleIdEnum as ModuleId } from "./middleware/types";
import { EventIdentifier, ExtrinsicData } from "./types";
/**
 * Handles all Middleware related functionality
 */
export declare class Middleware {
    private context;
    /**
     * @hidden
     */
    constructor(context: Context);
    /**
     * Retrieve a single event by any of its indexed arguments. Can be filtered using parameters
     *
     * @param opts.moduleId - type of the module to fetch
     * @param opts.eventId - type of the event to fetch
     * @param opts.eventArg0 - event parameter value to filter by in position 0
     * @param opts.eventArg1 - event parameter value to filter by in position 1
     * @param opts.eventArg2 - event parameter value to filter by in position 2
     *
     * @note uses the middleware
     */
    getEventByIndexedArgs(opts: {
        moduleId: ModuleId;
        eventId: EventId;
        eventArg0?: string;
        eventArg1?: string;
        eventArg2?: string;
    }): Promise<EventIdentifier | null>;
    /**
     * Retrieve a list of events. Can be filtered using parameters
     *
     * @param opts.moduleId - type of the module to fetch
     * @param opts.eventId - type of the event to fetch
     * @param opts.eventArg0 - event parameter value to filter by in position 0
     * @param opts.eventArg1 - event parameter value to filter by in position 1
     * @param opts.eventArg2 - event parameter value to filter by in position 2
     * @param opts.size - page size
     * @param opts.start - page offset
     *
     * @note uses the middleware
     */
    getEventsByIndexedArgs(opts: {
        moduleId: ModuleId;
        eventId: EventId;
        eventArg0?: string;
        eventArg1?: string;
        eventArg2?: string;
        size?: number;
        start?: number;
    }): Promise<EventIdentifier[] | null>;
    /**
     * Retrieve a transaction by hash
     *
     * @param opts.txHash - hash of the transaction
     *
     * @note uses the middleware
     */
    getTransactionByHash(opts: {
        txHash: string;
    }): Promise<ExtrinsicData | null>;
}
//# sourceMappingURL=Middleware.d.ts.map