/**
 * AgentVault OpenClaw Channel Plugin
 *
 * Registers AgentVault as a first-class OpenClaw messaging channel.
 * Messages from the AgentVault UI are decrypted and routed into the
 * OpenClaw agent loop; agent replies are encrypted and sent back.
 *
 * Installation (one-time):
 *   npx @agentvault/agentvault setup --token=av_tok_...
 *
 * After setup, restart OpenClaw — no further configuration needed.
 */
import { SecureChannel } from "./channel.js";
import { listAccountIds, resolveAccount, type ResolvedAccount } from "./account-config.js";
import type { PluginRuntime, ChannelGatewayContext, ChannelOutboundPayloadContext } from "./openclaw-types.js";
export declare function setOcRuntime(runtime: PluginRuntime): void;
export declare function getActiveChannel(accountId?: string): SecureChannel | undefined;
export declare const agentVaultPlugin: {
    id: string;
    meta: {
        id: string;
        label: string;
        selectionLabel: string;
        docsPath: string;
        blurb: string;
        aliases: string[];
    };
    capabilities: {
        chatTypes: string[];
    };
    config: {
        listAccountIds: typeof listAccountIds;
        resolveAccount: typeof resolveAccount;
    };
    gateway: {
        /** Health probe for `openclaw channels status --probe` */
        probe: (ctx: any) => Promise<{
            ok: boolean;
            status: string;
            error: string;
            deviceId?: undefined;
            sessions?: undefined;
        } | {
            ok: boolean;
            status: import("./types.js").ChannelState;
            deviceId: string | undefined;
            sessions: number;
            error?: undefined;
        }>;
        /** Status for `openclaw health --json` per-channel summary */
        status: (ctx: any) => {
            connected: boolean;
            status: string;
            deviceId?: undefined;
            sessions?: undefined;
            encrypted?: undefined;
        } | {
            connected: boolean;
            status: import("./types.js").ChannelState;
            deviceId: string | undefined;
            sessions: number;
            encrypted: boolean;
        };
        startAccount: (ctx: ChannelGatewayContext<ResolvedAccount>) => Promise<{
            stop: () => Promise<void>;
        }>;
    };
    outbound: {
        deliveryMode: "direct";
        targets: {
            id: string;
            label: string;
            accountId: string;
        }[];
        sendText: ({ text, accountId, targetId, }: {
            text: string;
            accountId?: string;
            targetId?: string;
        }) => Promise<{
            ok: boolean;
            error?: string;
        }>;
        sendMedia: ({ text, mediaUrl, accountId, }: {
            to: string;
            text?: string;
            mediaUrl: string;
            accountId?: string;
        }) => Promise<{
            ok: boolean;
            error?: string;
        }>;
        /** Rich payload delivery — OpenClaw v2026.3.2+ */
        sendPayload: (ctx: ChannelOutboundPayloadContext) => Promise<{
            ok: boolean;
            error: string;
        } | {
            ok: boolean;
            error?: undefined;
        }>;
    };
};
//# sourceMappingURL=openclaw-plugin.d.ts.map