import React from 'react';
import { Remote } from 'comlink';
import { CybIpfsNode } from './ipfs/ipfs';
import DbApiWrapper from './backend/services/dataSource/indexedDb/dbApiWrapper';
import { NeuronAddress, ParticleCid } from './types/base';
import { CozoDbWorker } from './backend/workers/db/worker';
import { BackgroundWorker } from './backend/workers/background/worker';
declare const createSenseApi: (dbApi: DbApiWrapper, myAddress?: string) => {
    getSummary: () => Promise<import("./backend/types/sense").SenseUnread[]>;
    getList: () => Promise<import("./backend/types/sense").SenseListItem[]>;
    markAsRead: (id: NeuronAddress | ParticleCid) => Promise<void>;
    getAllParticles: (fields: string[]) => Promise<import("./CozoDb/types/types").IDBResult>;
    getLinks: (cid: ParticleCid) => Promise<import("./CozoDb/types/dto").DbEntityToDto<import("./CozoDb/types/entities").LinkDbEntity>[]>;
    getTransactions: (neuron: NeuronAddress) => Promise<import("./CozoDb/types/dto").DbEntityToDto<import("./CozoDb/types/entities").TransactionDbEntity>[]>;
    getMyChats: (userAddress: NeuronAddress) => Promise<any>;
};
type BackendProviderContextType = {
    cozoDbRemote: Remote<CozoDbWorker> | null;
    senseApi: ReturnType<typeof createSenseApi> | null;
    ipfsApi: Remote<BackgroundWorker['ipfsApi']> | null;
    defferedDbApi: Remote<BackgroundWorker['defferedDbApi']> | null;
    ipfsNode?: Remote<CybIpfsNode> | null;
    ipfsError?: string | null;
    loadIpfs?: () => Promise<void>;
    isIpfsInitialized: boolean;
    isDbInitialized: boolean;
    isSyncInitialized: boolean;
    isReady: boolean;
};
export declare function useBackend(): BackendProviderContextType;
declare function BackendProvider({ children, backgroundWorkerInstance, cozoDbWorkerInstance }: {
    children: React.ReactNode;
    backgroundWorkerInstance: any;
    cozoDbWorkerInstance: any;
}): React.JSX.Element;
export default BackendProvider;
