//#region src/channels/command-gating.d.ts /** * Shared text-control command authorization policy for channel runtimes. * * These helpers are re-exported through the plugin SDK so built-in and external * channels make the same access-groups decisions for native command text. */ /** One channel-specific authorization source for text control commands. */ type CommandAuthorizer = { /** True when this channel/user identity has an access-group rule configured. */configured: boolean; /** True when the configured rule permits the command. Ignored when unconfigured. */ allowed: boolean; }; /** Fallback policy for channels that have access groups globally disabled. */ type CommandGatingModeWhenAccessGroupsOff = "allow" | "deny" | "configured"; /** Resolves whether any configured authorizer permits a control command. */ declare function resolveCommandAuthorizedFromAuthorizers(params: { /** Global access-group switch for the channel/runtime. */useAccessGroups: boolean; /** Independent authorization sources, such as sender id and actor id. */ authorizers: CommandAuthorizer[]; /** Policy used only when `useAccessGroups` is false. Defaults to open. */ modeWhenAccessGroupsOff?: CommandGatingModeWhenAccessGroupsOff; }): boolean; /** Resolves command authorization and whether the current text command should be blocked. */ declare function resolveControlCommandGate(params: { /** Global access-group switch for the channel/runtime. */useAccessGroups: boolean; /** Authorization sources checked by this channel command. */ authorizers: CommandAuthorizer[]; /** Channel setting that enables text commands as an input surface. */ allowTextCommands: boolean; /** True when the current inbound message parsed as a control command. */ hasControlCommand: boolean; /** Policy used only when `useAccessGroups` is false. Defaults to open. */ modeWhenAccessGroupsOff?: CommandGatingModeWhenAccessGroupsOff; }): { commandAuthorized: boolean; shouldBlock: boolean; }; /** Convenience gate for channels that check primary and secondary text command identities. */ declare function resolveDualTextControlCommandGate(params: { /** Global access-group switch for the channel/runtime. */useAccessGroups: boolean; /** Whether the primary identity has an access-group rule. */ primaryConfigured: boolean; /** Whether the primary configured rule permits the command. */ primaryAllowed: boolean; /** Whether the secondary identity has an access-group rule. */ secondaryConfigured: boolean; /** Whether the secondary configured rule permits the command. */ secondaryAllowed: boolean; /** True when the current inbound message parsed as a control command. */ hasControlCommand: boolean; /** Policy used only when `useAccessGroups` is false. Defaults to open. */ modeWhenAccessGroupsOff?: CommandGatingModeWhenAccessGroupsOff; }): { commandAuthorized: boolean; shouldBlock: boolean; }; //#endregion export { resolveDualTextControlCommandGate as a, resolveControlCommandGate as i, CommandGatingModeWhenAccessGroupsOff as n, resolveCommandAuthorizedFromAuthorizers as r, CommandAuthorizer as t };