/// <reference types="node" />
import { Player } from './core/Player';
import { Table, TableState } from './core/Table';
import { Card, CardSuit, CardRank, Deck, Hand } from './core/card/index';
import { Seat } from './core/Seat';
import { TableFactory } from './core/TableFactory';
import { WebSocketManager } from './core/WebSocketManager';
import { EventBus } from './events/EventBus';
import { MessageRouter } from './events/MessageRouter';
import { GameManager, GameDefinition } from './core/GameManager';
import { Lobby } from './core/Lobby';
import { AuthModule, ServerTransportModule, TransportModule } from './transport';
import { CLIENT_COMMAND_TYPES, CLIENT_MESSAGE_TYPES } from './core/commands/index';
import * as http from 'http';
import { PLAYER_EVENTS, TABLE_EVENTS, LOBBY_EVENTS, EVENTS, PlayerEventType, TableEventType, LobbyEventType, BuiltInEventType, CustomEventMap, EventType, EventPayloadMap } from './events';
export { Player, Table, Seat, TableState, TableFactory, WebSocketManager, EventBus, MessageRouter, GameManager, GameDefinition, Lobby, AuthModule, ServerTransportModule, TransportModule, CLIENT_COMMAND_TYPES, CLIENT_MESSAGE_TYPES, PLAYER_EVENTS, TABLE_EVENTS, LOBBY_EVENTS, EVENTS, PlayerEventType, TableEventType, LobbyEventType, BuiltInEventType, CustomEventMap, EventType, EventPayloadMap, Card, CardSuit, CardRank, Deck, Hand, };
export declare function createGameServer({ server, authModule, serverTransportModule, options, }: {
    server: http.Server;
    authModule?: AuthModule;
    serverTransportModule?: ServerTransportModule;
    options?: {
        /**
         * Optional timeout in milliseconds for player reconnection.
         * When a player disconnects, their game state is preserved for this duration.
         * If they reconnect within this time, they continue from where they left off.
         * If they don't reconnect within this time, they are removed from the game.
         * Default is 600000 (10 minutes). Set to 0 to disable reconnection.
         */
        reconnectionTimeoutMs?: number;
    };
}): {
    eventBus: EventBus;
    messageRouter: MessageRouter;
    tableFactory: TableFactory;
    gameManager: GameManager;
    lobby: Lobby;
    wsManager: WebSocketManager;
    transport: {
        auth: AuthModule | undefined;
        server: ServerTransportModule | undefined;
    };
};
