import { Constructor } from '@uprtcl/micro-orchestrator';
import { Remote } from '@uprtcl/evees';
import { HolochainConnection } from './holochain.connection';
export declare abstract class HolochainProvider implements Remote {
    protected connection: HolochainConnection;
    id: string;
    defaultPath: string;
    abstract instance: string;
    abstract zome: string;
    constructor(connection: HolochainConnection);
    userId?: string | undefined;
    /**
     * @override
     */
    ready(): Promise<void>;
    call(funcName: string, params: any): Promise<any>;
    isLogged(): Promise<boolean>;
    login(): Promise<void>;
    logout(): Promise<void>;
    connect(): Promise<void>;
    isConnected(): Promise<boolean>;
    disconnect(): Promise<void>;
}
export declare function createHolochainProvider(instance: string, zome: string): Constructor<HolochainProvider>;
