"use strict";
/**
 * PerpsController - Protocol-agnostic perpetuals trading controller
 *
 * This module provides a unified interface for perpetual futures trading
 * across multiple protocols with high-performance real-time data handling.
 *
 * Key Features:
 * - Protocol abstraction (HyperLiquid first, extensible to GMX, dYdX, etc.)
 * - Dual data flow: Redux for persistence, direct callbacks for live data
 * - MetaMask native integration with BaseController pattern
 * - Mobile-optimized with throttling and performance considerations
 *
 * Usage:
 * ```typescript
 * import { usePerpsController } from './controllers';
 *
 * const { placeOrder, getPositions } = usePerpsController();
 * // Live prices hooks removed with Live Market Prices component
 *
 * // Place a market order
 * await placeOrder({
 *   coin: 'ETH',
 *   is_buy: true,
 *   sz: '0.1',
 *   order_type: 'market'
 * });
 * ```
 */
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TradingReadinessCache = exports.HyperLiquidProvider = exports.InitializationState = exports.getDefaultPerpsControllerState = exports.PerpsController = void 0;
// Core controller and types
var PerpsController_1 = require("./PerpsController.cjs");
Object.defineProperty(exports, "PerpsController", { enumerable: true, get: function () { return PerpsController_1.PerpsController; } });
Object.defineProperty(exports, "getDefaultPerpsControllerState", { enumerable: true, get: function () { return PerpsController_1.getDefaultPerpsControllerState; } });
Object.defineProperty(exports, "InitializationState", { enumerable: true, get: function () { return PerpsController_1.InitializationState; } });
// Provider interfaces and implementations
var HyperLiquidProvider_1 = require("./providers/HyperLiquidProvider.cjs");
Object.defineProperty(exports, "HyperLiquidProvider", { enumerable: true, get: function () { return HyperLiquidProvider_1.HyperLiquidProvider; } });
// All type definitions
__exportStar(require("./types/index.cjs"), exports);
// All constants
__exportStar(require("./constants/index.cjs"), exports);
// All utilities
__exportStar(require("./utils/index.cjs"), exports);
// Error codes
__exportStar(require("./perpsErrorCodes.cjs"), exports);
// Selectors
__exportStar(require("./selectors.cjs"), exports);
// Services (only externally consumed items)
var TradingReadinessCache_1 = require("./services/TradingReadinessCache.cjs");
Object.defineProperty(exports, "TradingReadinessCache", { enumerable: true, get: function () { return TradingReadinessCache_1.TradingReadinessCache; } });
// Removed with Live Market Prices component:
// - usePerpsPrices
//# sourceMappingURL=index.cjs.map