export type GatewayChannelLayoutState = "disabled" | "invalidated" | "pending" | "ready" | "resuming" | "unavailable"; export type GatewayChannelLayoutReason = "awaiting-guild-create" | "awaiting-resume" | "connection-gap" | "guild-deleted" | "guild-unavailable" | "layout-disabled" | "malformed-channel-dispatch" | "malformed-guild-create" | "new-identify" | "outside-scope"; export interface GatewayChannelLayoutEntry { channelId: string; obfuscated: boolean; parentChannelId: string | null; position: number; type: number; } export interface GatewayChannelLayoutSnapshot { channels: readonly GatewayChannelLayoutEntry[]; complete: boolean; guildId: string; reason: GatewayChannelLayoutReason | null; revision: number; schemaVersion: number; state: GatewayChannelLayoutState; updatedAt: string | null; } export interface GatewayChannelLayoutStatus { channels: { obfuscated: number; retained: number; }; enabled: boolean; guilds: { invalidated: number; pending: number; ready: number; resuming: number; scoped: number; unavailable: number; }; invalidations: number; schemaVersion: number; updates: number; } export type GatewayChannelLayoutListener = (guildId: string) => void; export interface GatewayChannelLayoutSource { readonly layoutEnabled: boolean; getChannelLayout(guildId: string): GatewayChannelLayoutSnapshot; getChannelLayoutStatus(): GatewayChannelLayoutStatus; subscribeChannelLayouts(listener: GatewayChannelLayoutListener): () => void; } export interface GatewayChannelLayoutStoreOptions { clock?: () => Date; enabled: boolean; guildIds: ReadonlySet; } export declare class GatewayChannelLayoutStore implements GatewayChannelLayoutSource { #private; readonly layoutEnabled: boolean; constructor(options: GatewayChannelLayoutStoreOptions); ingestDispatch(name: string, raw: unknown): boolean; invalidateForContinuityGap(): boolean; invalidateForIdentify(): boolean; suspendForResume(): boolean; confirmResume(): boolean; getChannelLayout(guildId: string): GatewayChannelLayoutSnapshot; getChannelLayoutStatus(): GatewayChannelLayoutStatus; subscribeChannelLayouts(listener: GatewayChannelLayoutListener): () => void; } //# sourceMappingURL=gateway-channel-layout.d.ts.map