/**
 * Split `text` into Discord-postable chunks of <= DISCORD_MAX_CONTENT chars.
 * Prefers newline boundaries so code blocks / paragraphs stay readable; falls
 * back to a hard slice for a single overlong line. Pure — exported for tests.
 *
 * @param {string} text
 * @param {number} [max=DISCORD_MAX_CONTENT]
 * @returns {string[]} non-empty chunks (empty input → []).
 */
export function chunkDiscordContent(text: string, max?: number): string[];
export const DISCORD_MAX_CONTENT: 2000;
export namespace discordSkill {
    let id: string;
    let serverName: string;
    let allowedTools: string[];
    let requiresIntegration: "discord";
    let envKeys: string[];
    let description: string;
    let promptFragment: string;
    /**
     * Spawn spec for the GENERIC skill MCP server (bin/mcp-skill.mjs) pointed at
     * this module's discordSkill export — the model gets real mcp__discord__*
     * tools. Mirrors linear.js resolve() (see its docblock for the dist-relative
     * module-path rationale). Env allow-list: the self-host token/guild vars +
     * the backend-client vars resolveIntegrationToken needs in the child.
     */
    function resolve(): {
        command: any;
        args: any[];
        env: {};
        description: string;
        type?: undefined;
        alwaysLoad?: undefined;
    } | {
        type: string;
        command: string;
        args: any[];
        env: {};
        description: string;
        alwaysLoad: boolean;
    };
    function handleToolCall(name: any, args?: {}): Promise<string>;
    let tools: ({
        name: string;
        description: string;
        input_schema: {
            type: string;
            properties: {
                channelId: {
                    type: string;
                    description: string;
                };
                text: {
                    type: string;
                    description: string;
                };
                guildId?: undefined;
            };
            required: string[];
        };
    } | {
        name: string;
        description: string;
        input_schema: {
            type: string;
            properties: {
                guildId: {
                    type: string;
                    description: string;
                };
                channelId?: undefined;
                text?: undefined;
            };
            required?: undefined;
        };
    })[];
}
