import type { SlackChannelId, SlackMessageTs } from "./types.js"; export interface SlackRuntimeEffortOption { readonly value: string; readonly label: string; } export interface SlackRuntimeModelOption { readonly value: string; readonly label: string; readonly efforts: readonly SlackRuntimeEffortOption[]; } /** Display-ready configured runtime choices supplied by the host. */ export interface SlackRuntimeControls { readonly defaultModel: string; readonly defaultEffort?: string; readonly models: readonly SlackRuntimeModelOption[]; } /** Exact workspace-registered slash command names routed to native runtime controls. */ export interface SlackRuntimeSlashCommands { readonly model: string; readonly effort: string; } export interface SlackRuntimeControlCatalog { readonly controls: SlackRuntimeControls; readonly modelByValue: ReadonlyMap; readonly modelByToken: ReadonlyMap; readonly modelTokenByValue: ReadonlyMap; readonly effortByModelToken: ReadonlyMap>; } export interface SlackRuntimeScope { readonly key: string; readonly description: "this DM" | "this thread" | "this channel"; /** Shared-channel thread scopes inherit a channel-wide slash-command choice. */ readonly inheritedKey?: string; } export interface SlackRuntimeCommandTarget { readonly channelId: SlackChannelId; readonly threadTs?: SlackMessageTs; readonly scope: SlackRuntimeScope; readonly resetCommand: string; } export interface SlackRuntimeMenuContext { readonly control: "model" | "effort"; readonly scope: SlackRuntimeScope; readonly channelId: SlackChannelId; readonly messageTs: SlackMessageTs; readonly resetCommand: string; readonly expectedModel?: string; } export declare const SLACK_STATIC_SELECT_MAX_OPTIONS = 100; export declare const SLACK_OPTION_TEXT_MAX_CODE_POINTS = 75; export declare const MODEL_SELECT_ACTION_ID = "mono_agent_runtime_model"; export declare const MODEL_CANCEL_ACTION_ID = "mono_agent_runtime_model_cancel"; export declare const EFFORT_SELECT_ACTION_ID = "mono_agent_runtime_effort"; export declare const EFFORT_CANCEL_ACTION_ID = "mono_agent_runtime_effort_cancel"; export declare function buildSlackRuntimeControlCatalog(input: SlackRuntimeControls | undefined): SlackRuntimeControlCatalog | undefined; export declare function buildSlackRuntimeSlashCommandMap(input: SlackRuntimeSlashCommands | undefined): ReadonlyMap; export declare function normalizeSlackSlashCommand(value: string): string | undefined; export declare function isSlackDirectMessageChannel(channelId: SlackChannelId): boolean; export declare function slackRuntimeModelPresentation(model: SlackRuntimeModelOption): { readonly label: string; readonly description?: string; }; export interface SlackSelectOption { readonly text: { readonly type: "plain_text"; readonly text: string; readonly emoji: false; }; readonly value: string; readonly description?: { readonly type: "plain_text"; readonly text: string; readonly emoji: false; }; } export declare function slackSelectOption(label: string, value: string, description?: string): SlackSelectOption; export declare function runtimeMenuBlocks(input: { readonly text: string; readonly blockId: string; readonly actionId: string; readonly cancelActionId: string; readonly placeholder: string; readonly options: readonly SlackSelectOption[]; readonly initialOption: SlackSelectOption | undefined; }): readonly unknown[]; export declare function slackTruncateCodePoints(value: string, max: number): string; export declare function runtimeControlForActionId(actionId: string): "model" | "effort" | undefined; export declare function slackRuntimeMenuKey(channelId: SlackChannelId, messageTs: SlackMessageTs): string; export declare function slackActiveRuntimeMenuKey(scope: SlackRuntimeScope, control: "model" | "effort"): string; //# sourceMappingURL=runtime-controls.d.ts.map