import { z } from 'zod'; export declare const PluginConfigSchema: z.ZodObject<{ /** Engram server base URL, e.g. "http://localhost:37777". */ url: z.ZodDefault>; /** Bearer token for engram API authentication. Marked sensitive in UI hints. */ token: z.ZodString; /** * Project scope override. When set, all observations are stored under this * project regardless of workspace identity. */ project: z.ZodOptional; /** Maximum observations to inject per prompt turn. */ contextLimit: z.ZodDefault; /** Maximum observations to inject at session start. */ sessionContextLimit: z.ZodDefault; /** * Token budget for context injection. Approximately 4 chars per token. * Observations are trimmed to fit within this budget. */ tokenBudget: z.ZodDefault; /** Per-request HTTP timeout in milliseconds. */ timeoutMs: z.ZodDefault; /** * Enable automatic observation extraction on compaction and session end. * When false, only explicit tool calls store memories. */ autoExtract: z.ZodDefault; /** * Workspace directory path for memory file discovery (MEMORY.md, memory/). * Required for /migrate command when called from channel context (Telegram, Discord) * where PluginCommandContext doesn't carry workspaceDir. * Defaults to ~/.openclaw/workspace/ (default agent workspace). */ workspaceDir: z.ZodOptional; /** Heartbeat / keep-alive event settings. */ heartbeat: z.ZodDefault; }, "strip", z.ZodTypeAny, { ingest: boolean; }, { ingest?: boolean | undefined; }>>; /** Log verbosity level. */ logLevel: z.ZodDefault>; }, "strip", z.ZodTypeAny, { url: string; token: string; contextLimit: number; sessionContextLimit: number; tokenBudget: number; timeoutMs: number; autoExtract: boolean; heartbeat: { ingest: boolean; }; logLevel: "debug" | "info" | "warn" | "error"; project?: string | undefined; workspaceDir?: string | undefined; }, { token: string; url?: string | undefined; project?: string | undefined; contextLimit?: number | undefined; sessionContextLimit?: number | undefined; tokenBudget?: number | undefined; timeoutMs?: number | undefined; autoExtract?: boolean | undefined; workspaceDir?: string | undefined; heartbeat?: { ingest?: boolean | undefined; } | undefined; logLevel?: "debug" | "info" | "warn" | "error" | undefined; }>; export type PluginConfig = z.infer; /** * Parse and validate raw config from the OpenClaw plugin manifest. * Returns a fully-populated config with defaults applied. * Throws a ZodError if validation fails. */ export declare function parseConfig(raw: Record): PluginConfig; /** * Export the config schema as a JSON Schema object for OpenClaw's manifest * `configSchema` field. This is a minimal static representation — the authoritative * validation is done by `parseConfig()` at runtime. */ export declare function getJsonSchema(): Record; //# sourceMappingURL=config.d.ts.map