import type { OpenClawConfig } from "../config/config.js";
import type { SlackAccountConfig } from "../config/types.slack.js";
import { type SlackTokenSource } from "./accounts.js";
export type SlackCredentialStatus = "available" | "configured_unavailable" | "missing";
export type InspectedSlackAccount = {
    accountId: string;
    enabled: boolean;
    name?: string;
    mode?: SlackAccountConfig["mode"];
    botToken?: string;
    appToken?: string;
    signingSecret?: string;
    userToken?: string;
    botTokenSource: SlackTokenSource;
    appTokenSource: SlackTokenSource;
    signingSecretSource?: SlackTokenSource;
    userTokenSource: SlackTokenSource;
    botTokenStatus: SlackCredentialStatus;
    appTokenStatus: SlackCredentialStatus;
    signingSecretStatus?: SlackCredentialStatus;
    userTokenStatus: SlackCredentialStatus;
    configured: boolean;
    config: SlackAccountConfig;
    groupPolicy?: SlackAccountConfig["groupPolicy"];
    textChunkLimit?: SlackAccountConfig["textChunkLimit"];
    mediaMaxMb?: SlackAccountConfig["mediaMaxMb"];
    reactionNotifications?: SlackAccountConfig["reactionNotifications"];
    reactionAllowlist?: SlackAccountConfig["reactionAllowlist"];
    replyToMode?: SlackAccountConfig["replyToMode"];
    replyToModeByChatType?: SlackAccountConfig["replyToModeByChatType"];
    actions?: SlackAccountConfig["actions"];
    slashCommand?: SlackAccountConfig["slashCommand"];
    dm?: SlackAccountConfig["dm"];
    channels?: SlackAccountConfig["channels"];
};
export declare function inspectSlackAccount(params: {
    cfg: OpenClawConfig;
    accountId?: string | null;
    envBotToken?: string | null;
    envAppToken?: string | null;
    envUserToken?: string | null;
}): InspectedSlackAccount;
