import { AnnotatedFunctionResultView, StatePageView, StateView } from '../types';
import { IClient } from './interface';
import { ExecuteViewFunctionParams, ListStatesParams } from './types.ts';
export interface ITransactionFilterChain {
    doFilter(request: any): Promise<any>;
}
export interface ITransactionFilter {
    init(): void;
    doFilter(request: any, chain: ITransactionFilterChain): Promise<any>;
    destroy(): void;
}
export type FilterFunc = (request: any, chain: ITransactionFilterChain) => Promise<any>;
export declare class FuncFilter implements ITransactionFilter {
    private func;
    constructor(func: FilterFunc);
    init(): void;
    destroy(): void;
    doFilter(request: any, chain: ITransactionFilterChain): Promise<any>;
}
export declare class FilteredProvider implements IClient {
    private target;
    private filters;
    constructor(target: IClient, filters: Array<ITransactionFilter>);
    getRpcApiVersion(): Promise<string | undefined>;
    getChainId(): number;
    executeViewFunction(params: ExecuteViewFunctionParams): Promise<AnnotatedFunctionResultView>;
    getStates(accessPath: string): Promise<StateView | null[]>;
    listStates(params: ListStatesParams): Promise<StatePageView>;
    sendRawTransaction(playload: Uint8Array): Promise<string>;
    destroy(): void;
}
