import { ApolloClient } from "@apollo/client/core";
import { Address } from "../Address";
import { DID } from "../DID";
import { OnlineAgent, TelepresenceSignalCallback } from "../language/Language";
import { Perspective, PerspectiveUnsignedInput } from "../perspectives/Perspective";
import { PerspectiveHandle } from "../perspectives/PerspectiveHandle";
export declare class NeighbourhoodClient {
    #private;
    constructor(client: ApolloClient<any>);
    publishFromPerspective(perspectiveUUID: string, linkLanguage: Address, meta: Perspective): Promise<string>;
    joinFromUrl(url: string): Promise<PerspectiveHandle>;
    otherAgents(perspectiveUUID: string): Promise<DID[]>;
    hasTelepresenceAdapter(perspectiveUUID: string): Promise<boolean>;
    onlineAgents(perspectiveUUID: string): Promise<OnlineAgent[]>;
    setOnlineStatus(perspectiveUUID: string, status: Perspective): Promise<boolean>;
    setOnlineStatusU(perspectiveUUID: string, status: PerspectiveUnsignedInput): Promise<boolean>;
    sendSignal(perspectiveUUID: string, remoteAgentDid: string, payload: Perspective): Promise<boolean>;
    sendSignalU(perspectiveUUID: string, remoteAgentDid: string, payload: PerspectiveUnsignedInput): Promise<boolean>;
    sendBroadcast(perspectiveUUID: string, payload: Perspective): Promise<boolean>;
    sendBroadcastU(perspectiveUUID: string, payload: PerspectiveUnsignedInput): Promise<boolean>;
    dispatchSignal(perspectiveUUID: string, signal: any): void;
    subscribeToSignals(perspectiveUUID: string): Promise<void>;
    addSignalHandler(perspectiveUUID: string, handler: TelepresenceSignalCallback): Promise<void>;
    removeSignalHandler(perspectiveUUID: string, handler: TelepresenceSignalCallback): void;
}
