import { EstimateAction, ExtrinsicEvent } from '@futureverse/experience-sdk';
import { ApiPromise } from '@polkadot/api';
import { ApiOptions, SubmittableExtrinsic } from '@polkadot/api/types';
import * as React from 'react';
import { SignMessageCallbacks } from '../interfaces';
type CreateDispatcher = {
    feeOptions?: {
        assetId: number;
        slippage?: number;
    };
    wrapWithFuturePass?: boolean;
    onSignatureSuccess?: () => void;
    xamanOptions?: {
        instruction?: string;
        signMessageCallbacks?: SignMessageCallbacks;
    };
};
type SubmittedExtrinsicData = {
    extrinsicId: string;
    transactionHash: string;
};
type Result<T, E = Error> = {
    ok: true;
    value: T;
} | {
    ok: false;
    value: E;
};
type TrnDispatcher = {
    signAndSend: (extrinsic: SubmittableExtrinsic<'promise'>) => Promise<Result<SubmittedExtrinsicData & {
        events: ExtrinsicEvent[];
    }, Error>>;
    estimate: EstimateAction;
};
type UseTrnApiProps = {
    provider?: ApiOptions['provider'];
};
type TrnApi = {
    trnApi: ApiPromise | null;
    createTrnDispatcher: (options: CreateDispatcher) => TrnDispatcher;
};
export declare const TrnApiProvider: React.ComponentType<import("../util/container").ContainerProviderProps<UseTrnApiProps>>, useTrnApi: () => TrnApi;
export {};
