import { ApolloClient } from "@apollo/client/core";
import { Perspective, PerspectiveExpression } from "../perspectives/Perspective";
import { RuntimeInfo, ExceptionInfo, SentMessage, NotificationInput, Notification, TriggeredNotification } from "./RuntimeResolver";
export type MessageCallback = (message: PerspectiveExpression) => null;
export type ExceptionCallback = (info: ExceptionInfo) => null;
export type NotificationTriggeredCallback = (notification: TriggeredNotification) => null;
export type NotificationRequestedCallback = (notification: Notification) => null;
export declare class RuntimeClient {
    #private;
    constructor(client: ApolloClient<any>, subscribe?: boolean);
    info(): Promise<RuntimeInfo>;
    quit(): Promise<Boolean>;
    openLink(url: string): Promise<Boolean>;
    addTrustedAgents(agents: string[]): Promise<string[]>;
    deleteTrustedAgents(agents: string[]): Promise<string[]>;
    getTrustedAgents(): Promise<string[]>;
    addKnownLinkLanguageTemplates(addresses: string[]): Promise<string[]>;
    removeKnownLinkLanguageTemplates(addresses: string[]): Promise<string[]>;
    knownLinkLanguageTemplates(): Promise<string[]>;
    addFriends(dids: string[]): Promise<string[]>;
    removeFriends(dids: string[]): Promise<string[]>;
    friends(): Promise<string[]>;
    hcAgentInfos(): Promise<String>;
    hcAddAgentInfos(agentInfos: String): Promise<void>;
    verifyStringSignedByDid(did: string, didSigningKeyId: string, data: string, signedData: string): Promise<boolean>;
    setStatus(perspective: Perspective): Promise<boolean>;
    friendStatus(did: string): Promise<PerspectiveExpression>;
    friendSendMessage(did: string, message: Perspective): Promise<boolean>;
    messageInbox(filter?: string): Promise<PerspectiveExpression[]>;
    messageOutbox(filter?: string): Promise<SentMessage[]>;
    requestInstallNotification(notification: NotificationInput): Promise<any>;
    grantNotification(id: string): Promise<boolean>;
    notifications(): Promise<Notification[]>;
    updateNotification(id: string, notification: NotificationInput): Promise<boolean>;
    removeNotification(id: string): Promise<boolean>;
    addNotificationTriggeredCallback(cb: NotificationTriggeredCallback): void;
    subscribeNotificationTriggered(): void;
    addMessageCallback(cb: MessageCallback): void;
    subscribeMessageReceived(): void;
    addExceptionCallback(cb: ExceptionCallback): void;
    subscribeExceptionOccurred(): void;
}
