import * as Ably from "ably"; import Spaces, { type Space } from "@ably/spaces"; import { AblyBaseCommand } from "./base-command.js"; import { BaseFlags } from "./types/cli.js"; export declare abstract class SpacesBaseCommand extends AblyBaseCommand { static globalFlags: { port: import("@oclif/core/interfaces").OptionFlag; "tls-port": import("@oclif/core/interfaces").OptionFlag; tls: import("@oclif/core/interfaces").OptionFlag; verbose: import("@oclif/core/interfaces").BooleanFlag; json: import("@oclif/core/interfaces").BooleanFlag; "pretty-json": import("@oclif/core/interfaces").BooleanFlag; "web-cli-help": import("@oclif/core/interfaces").BooleanFlag; }; protected space: Space | null; protected spaces: Spaces | null; protected realtimeClient: Ably.Realtime | null; protected parsedFlags: BaseFlags; protected hasEnteredSpace: boolean; protected markAsEntered(): void; /** * Enter the space and mark as entered in one call. * Always use this instead of calling space.enter() + markAsEntered() separately * to ensure cleanup (space.leave()) is never accidentally skipped. */ protected enterCurrentSpace(flags: BaseFlags, profileData?: Record): Promise; finally(error: Error | undefined): Promise; protected setupSpacesClient(flags: BaseFlags, spaceName: string): Promise<{ realtimeClient: Ably.Realtime; spacesClient: unknown; space: Space; }>; protected waitForConnection(flags: BaseFlags): Promise; protected initializeSpace(flags: BaseFlags, spaceName: string, options?: { enterSpace?: boolean; setupConnectionLogging?: boolean; }): Promise; protected waitForCursorsChannelAttachment(flags: BaseFlags): Promise; protected createSpacesClient(realtimeClient: Ably.Realtime): Promise; }