import { i as NodmixConfig } from "./types.nodmix-B9QJSty6.js";
import { v as HumanDelayConfig, y as IdentityConfig } from "./types.base-BhpfV4ef.js";

//#region src/agents/identity.d.ts
declare function resolveAgentIdentity(cfg: NodmixConfig, agentId: string): IdentityConfig | undefined;
declare function resolveAckReaction(cfg: NodmixConfig, agentId: string, opts?: {
  channel?: string;
  accountId?: string;
}): string;
declare function resolveIdentityNamePrefix(cfg: NodmixConfig, agentId: string): string | undefined;
declare function resolveMessagePrefix(cfg: NodmixConfig, agentId: string, opts?: {
  configured?: string;
  hasAllowFrom?: boolean;
  fallback?: string;
}): string;
declare function resolveResponsePrefix(cfg: NodmixConfig, agentId: string, opts?: {
  channel?: string;
  accountId?: string;
}): string | undefined;
declare function resolveEffectiveMessagesConfig(cfg: NodmixConfig, agentId: string, opts?: {
  hasAllowFrom?: boolean;
  fallbackMessagePrefix?: string;
  channel?: string;
  accountId?: string;
}): {
  messagePrefix: string;
  responsePrefix?: string;
};
declare function resolveHumanDelayConfig(cfg: NodmixConfig, agentId: string): HumanDelayConfig | undefined;
//#endregion
//#region src/channels/ack-reactions.d.ts
type AckReactionScope = "all" | "direct" | "group-all" | "group-mentions" | "off" | "none";
type WhatsAppAckReactionMode = "always" | "mentions" | "never";
type AckReactionHandle = {
  ackReactionPromise: Promise<boolean>;
  ackReactionValue: string;
  remove: () => Promise<void>;
};
type AckReactionGateParams = {
  scope: AckReactionScope | undefined;
  isDirect: boolean;
  isGroup: boolean;
  isMentionableGroup: boolean;
  requireMention: boolean;
  canDetectMention: boolean;
  effectiveWasMentioned: boolean;
  shouldBypassMention?: boolean;
};
declare function shouldAckReaction(params: AckReactionGateParams): boolean;
declare function shouldAckReactionForWhatsApp(params: {
  emoji: string;
  isDirect: boolean;
  isGroup: boolean;
  directEnabled: boolean;
  groupMode: WhatsAppAckReactionMode;
  wasMentioned: boolean;
  groupActivated: boolean;
}): boolean;
declare function createAckReactionHandle(params: {
  ackReactionValue: string;
  send: () => Promise<void>;
  remove: () => Promise<void>;
  onSendError?: (err: unknown) => void;
}): AckReactionHandle | null;
declare function removeAckReactionAfterReply(params: {
  removeAfterReply: boolean;
  ackReactionPromise: Promise<boolean> | null;
  ackReactionValue: string | null;
  remove: () => Promise<void>;
  onError?: (err: unknown) => void;
}): void;
declare function removeAckReactionHandleAfterReply(params: {
  removeAfterReply: boolean;
  ackReaction: AckReactionHandle | null | undefined;
  onError?: (err: unknown) => void;
}): void;
//#endregion
export { createAckReactionHandle as a, shouldAckReaction as c, resolveAgentIdentity as d, resolveEffectiveMessagesConfig as f, resolveResponsePrefix as g, resolveMessagePrefix as h, WhatsAppAckReactionMode as i, shouldAckReactionForWhatsApp as l, resolveIdentityNamePrefix as m, AckReactionHandle as n, removeAckReactionAfterReply as o, resolveHumanDelayConfig as p, AckReactionScope as r, removeAckReactionHandleAfterReply as s, AckReactionGateParams as t, resolveAckReaction as u };