import type { ChannelId, ChannelMessageActionName } from "../../channels/plugins/types.public.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { type OutboundMediaAccess, type OutboundMediaReadFile } from "../../media/load-options.js"; import { readBooleanParam as readBooleanParamShared } from "../../plugin-sdk/boolean-param.js"; export declare const readBooleanParam: typeof readBooleanParamShared; export declare function resolveExtraActionMediaSourceParamKeys(params: { cfg: OpenClawConfig; action?: ChannelMessageActionName; args: Record; channel?: string; accountId?: string | null; sessionKey?: string | null; sessionId?: string | null; agentId?: string | null; requesterSenderId?: string | null; senderIsOwner?: boolean; }): string[]; export declare function collectActionMediaSourceHints(args: Record, extraParamKeys?: readonly string[]): string[]; export type AttachmentMediaPolicy = { mode: "sandbox"; sandboxRoot: string; } | { mode: "host"; mediaAccess?: OutboundMediaAccess; mediaLocalRoots?: readonly string[] | "any"; mediaReadFile?: OutboundMediaReadFile; }; export declare function resolveAttachmentMediaPolicy(params: { sandboxRoot?: string; mediaAccess?: OutboundMediaAccess; mediaLocalRoots?: readonly string[] | "any"; mediaReadFile?: OutboundMediaReadFile; }): AttachmentMediaPolicy; export declare function normalizeSandboxMediaParams(params: { args: Record; mediaPolicy: AttachmentMediaPolicy; extraParamKeys?: readonly string[]; }): Promise; export declare function normalizeSandboxMediaList(params: { values: string[]; sandboxRoot?: string; }): Promise; export declare function hydrateAttachmentParamsForAction(params: { cfg: OpenClawConfig; channel: ChannelId; accountId?: string | null; args: Record; action: ChannelMessageActionName; dryRun?: boolean; mediaPolicy: AttachmentMediaPolicy; }): Promise; export declare function parseJsonMessageParam(params: Record, key: string): void; export declare function parseInteractiveParam(params: Record): void;