import { i as OpenClawConfig } from "./types.openclaw-DH5a2ppk.js"; //#region src/plugin-sdk/approval-approvers.d.ts type ApproverInput = string | number; /** Resolves explicit approvers first, then allow-from/default fallbacks with dedupe. */ declare function resolveApprovalApprovers(params: { explicit?: readonly ApproverInput[] | null; allowFrom?: readonly ApproverInput[] | null; extraAllowFrom?: readonly ApproverInput[] | null; defaultTo?: string | null; normalizeApprover: (value: ApproverInput) => string | undefined; normalizeDefaultTo?: (value: string) => string | undefined; }): string[]; //#endregion //#region src/plugin-sdk/approval-auth-helpers.d.ts type ApprovalKind = "exec" | "plugin"; type ApprovalAuthorizationResult = { /** Whether the actor may perform the approval action. */authorized: boolean; /** User-facing denial reason when authorization fails. */ reason?: string; }; /** * Marks an authorization result as the implicit same-chat fallback used when a * channel has no configured approver allowlist. */ declare function markImplicitSameChatApprovalAuthorization(/** Authorization result to tag as the empty-approver same-chat fallback. */ result: ApprovalAuthorizationResult): ApprovalAuthorizationResult; /** * Checks whether an authorization result came from the implicit same-chat * fallback instead of an explicitly configured approver allowlist. */ declare function isImplicitSameChatApprovalAuthorization(/** Authorization result returned by approval auth helpers. */ result: ApprovalAuthorizationResult | null | undefined): boolean; /** * Builds the approval authorization adapter shared by channels that resolve * approvers from account-scoped config. */ declare function createResolvedApproverActionAuthAdapter(params: { /** Human-readable channel label used in denial messages. */channelLabel: string; /** Resolves normalized approver ids from config and optional account scope. */ resolveApprovers: (params: { cfg: OpenClawConfig; accountId?: string | null; }) => string[]; /** Optional sender normalizer; defaults to trimmed string normalization. */ normalizeSenderId?: (value: string) => string | undefined; }): { authorizeActorAction({ cfg, accountId, senderId, approvalKind }: { /** Full config used to resolve account-scoped approvers. */cfg: OpenClawConfig; /** Optional channel account id for account-scoped approver config. */ accountId?: string | null; /** Actor attempting the approval action. */ senderId?: string | null; /** Approval action being authorized. */ action: "approve"; /** Approval kind used in user-facing denial copy. */ approvalKind: ApprovalKind; }): ApprovalAuthorizationResult | { readonly authorized: true; readonly reason?: undefined; } | { readonly authorized: false; readonly reason: `\u274C You are not authorized to approve exec requests on ${string}.` | `\u274C You are not authorized to approve plugin requests on ${string}.`; }; }; //#endregion export { resolveApprovalApprovers as i, isImplicitSameChatApprovalAuthorization as n, markImplicitSameChatApprovalAuthorization as r, createResolvedApproverActionAuthAdapter as t };