/**
 * Input sanitization for Slack adapter.
 *
 * Prevents prompt injection, path traversal, and SSRF attacks
 * by validating and cleaning user-controlled fields before use.
 *
 * CONTRACT-EVIDENCE: EXEMPT — pure string-validation/slug helpers; this module
 * makes NO Slack API calls and touches no API-contract surface. The added
 * slugifyChannelName is covered by tests/unit/slack-channel-slug.test.ts.
 */
/**
 * Sanitize a Slack display name for safe injection into session context.
 *
 * Strips brackets, angle brackets, newlines, control characters.
 * Truncates to 64 chars.
 */
export declare function sanitizeDisplayName(name: string): string;
/**
 * Validate a Slack channel ID format.
 * Must match ^[CDG][A-Z0-9]{8,12}$ (C = public, D = DM, G = group/private).
 */
export declare function validateChannelId(id: string): boolean;
/**
 * Validate a Slack channel name.
 * Must be lowercase alphanumeric with hyphens/underscores, max 80 chars.
 */
export declare function validateChannelName(name: string): boolean;
/**
 * Slugify an arbitrary string into a valid Slack channel name.
 *
 * Slack channel names must be lowercase and may only contain [a-z0-9-_]
 * (see {@link validateChannelName}). A workspace-derived name like
 * "SageMind Live Test" contains spaces and uppercase, which `createChannel`
 * rejects via validate-and-throw. This produces a guaranteed-valid slug:
 * lowercase, non-[a-z0-9] runs collapsed to a single hyphen, leading/trailing
 * hyphens trimmed, and clamped to Slack's 80-char limit.
 *
 * Mirrors the session-channel slug logic in SlackAdapter.
 */
export declare function slugifyChannelName(name: string): string;
/**
 * Validate that a URL hostname belongs to *.slack.com.
 * Used to prevent SSRF via manipulated upload URLs.
 */
export declare function validateSlackHostname(url: string): boolean;
/**
 * Escape text for Slack mrkdwn format.
 * Escapes &, <, > to prevent mrkdwn injection in user-supplied fields.
 */
export declare function escapeMrkdwn(text: string): string;
/**
 * Redact a Slack token for safe logging.
 * Shows first 8 chars + "..." to identify the token type without exposing the secret.
 */
export declare function redactToken(token: string): string;
//# sourceMappingURL=sanitize.d.ts.map