/**
 * Discord-specific types and constants for the Discord Gateway ingestor.
 */
export declare const GatewayOp: {
    readonly DISPATCH: 0;
    readonly HEARTBEAT: 1;
    readonly IDENTIFY: 2;
    readonly RESUME: 6;
    readonly RECONNECT: 7;
    readonly INVALID_SESSION: 9;
    readonly HELLO: 10;
    readonly HEARTBEAT_ACK: 11;
};
export declare const DiscordIntents: {
    readonly GUILDS: number;
    readonly GUILD_MEMBERS: number;
    readonly GUILD_MODERATION: number;
    readonly GUILD_EXPRESSIONS: number;
    readonly GUILD_INTEGRATIONS: number;
    readonly GUILD_WEBHOOKS: number;
    readonly GUILD_INVITES: number;
    readonly GUILD_VOICE_STATES: number;
    readonly GUILD_PRESENCES: number;
    readonly GUILD_MESSAGES: number;
    readonly GUILD_MESSAGE_REACTIONS: number;
    readonly GUILD_MESSAGE_TYPING: number;
    readonly DIRECT_MESSAGES: number;
    readonly DIRECT_MESSAGE_REACTIONS: number;
    readonly DIRECT_MESSAGE_TYPING: number;
    readonly MESSAGE_CONTENT: number;
    readonly GUILD_SCHEDULED_EVENTS: number;
    readonly AUTO_MODERATION_CONFIGURATION: number;
    readonly AUTO_MODERATION_EXECUTION: number;
};
/** All defined intents OR'd together (includes privileged: GUILD_MEMBERS, GUILD_PRESENCES, MESSAGE_CONTENT). */
export declare const ALL_INTENTS: number;
/** All non-privileged intents OR'd together. */
export declare const ALL_NON_PRIVILEGED_INTENTS: number;
/** Default intents: guilds + guild messages + DMs (no privileged intents). */
export declare const DEFAULT_INTENTS: number;
export interface GatewayPayload {
    op: number;
    d: unknown;
    s: number | null;
    t: string | null;
}
/** Discord close codes that are non-recoverable (do NOT reconnect). */
export declare const NON_RECOVERABLE_CLOSE_CODES: Set<number>;
/** Discord close codes that invalidate the session (must re-IDENTIFY, not RESUME). */
export declare const INVALIDATE_SESSION_CLOSE_CODES: Set<number>;
/**
 * Extract a user ID from a Discord dispatch event payload.
 * Different event types store the user ID in different fields.
 */
export declare function extractUserId(data: Record<string, unknown>): string | undefined;
//# sourceMappingURL=types.d.ts.map