import { MarketId } from "../types"; import * as Z from "zod"; export declare enum TopicType { level1 = "level1", marketTrades = "marketTrades", level2Depth20 = "level2Depth20", bookDelta = "bookDelta", userOrderEvents = "userOrderEvents", unknown = "unknown" } export declare const parseTopicType: (topic: string) => TopicType; export declare class TopicCodes { static createMarketDataTopic: (marketId: MarketId[], topic: TopicType) => string; static createPrivateUserTopic: (accountId: string, topic: TopicType) => string; } export declare enum WebSocketMessageTypes { UPDATE = "UPDATE", SUBSCRIBED = "SUBSCRIBED", UNSUBSCRIBED = "UNSUBSCRIBED", SUBSCRIBE = "SUBSCRIBE", UNSUBSCRIBE = "UNSUBSCRIBE", SUBSCRIPTIONS = "SUBSCRIPTIONS", LIST_SUBSCRIPTIONS = "LIST_SUBSCRIPTIONS", INITIAL_SNAPSHOT = "INITIAL_SNAPSHOT", ERROR = "ERROR" } export type WebSocketRequestTypes = WebSocketMessageTypes.SUBSCRIBE | WebSocketMessageTypes.UNSUBSCRIBE | WebSocketMessageTypes.LIST_SUBSCRIPTIONS; export type WebSocketResponseTypes = WebSocketMessageTypes.UPDATE | WebSocketMessageTypes.SUBSCRIBED | WebSocketMessageTypes.UNSUBSCRIBED | WebSocketMessageTypes.SUBSCRIPTIONS | WebSocketMessageTypes.ERROR | WebSocketMessageTypes.INITIAL_SNAPSHOT; export declare enum PrivateUserSubjects { trade = "trade", order = "order", cancel = "cancel" } declare const requestSchema: Z.ZodObject<{ id: Z.ZodOptional; type: Z.ZodEnum<[WebSocketMessageTypes.SUBSCRIBE, WebSocketMessageTypes.LIST_SUBSCRIPTIONS, WebSocketMessageTypes.UNSUBSCRIBE]>; topic: Z.ZodOptional; }, "strip", Z.ZodTypeAny, { type: WebSocketMessageTypes.SUBSCRIBE | WebSocketMessageTypes.UNSUBSCRIBE | WebSocketMessageTypes.LIST_SUBSCRIPTIONS; id?: string | undefined; topic?: string | undefined; }, { type: WebSocketMessageTypes.SUBSCRIBE | WebSocketMessageTypes.UNSUBSCRIBE | WebSocketMessageTypes.LIST_SUBSCRIPTIONS; id?: string | undefined; topic?: string | undefined; }>; declare const errorSchema: Z.ZodObject<{ id: Z.ZodOptional; type: Z.ZodEnum<[WebSocketMessageTypes.ERROR]>; code: Z.ZodNumber; message: Z.ZodString; }, "strip", Z.ZodTypeAny, { type: WebSocketMessageTypes.ERROR; code: number; message: string; id?: string | undefined; }, { type: WebSocketMessageTypes.ERROR; code: number; message: string; id?: string | undefined; }>; declare const webSocketUpdateSchema: Z.ZodObject<{ type: Z.ZodEnum<[WebSocketMessageTypes.UPDATE, WebSocketMessageTypes.INITIAL_SNAPSHOT]>; topic: Z.ZodString; data: Z.ZodAny; }, "strip", Z.ZodTypeAny, { type: WebSocketMessageTypes.UPDATE | WebSocketMessageTypes.INITIAL_SNAPSHOT; topic: string; data?: any; }, { type: WebSocketMessageTypes.UPDATE | WebSocketMessageTypes.INITIAL_SNAPSHOT; topic: string; data?: any; }>; declare const responseSchema: Z.ZodObject<{ id: Z.ZodString; type: Z.ZodEnum<[WebSocketMessageTypes.SUBSCRIBED, WebSocketMessageTypes.UNSUBSCRIBED, WebSocketMessageTypes.SUBSCRIPTIONS]>; topics: Z.ZodOptional>; topic: Z.ZodOptional; }, "strip", Z.ZodTypeAny, { type: WebSocketMessageTypes.SUBSCRIBED | WebSocketMessageTypes.UNSUBSCRIBED | WebSocketMessageTypes.SUBSCRIPTIONS; id: string; topics?: string[] | undefined; topic?: string | undefined; }, { type: WebSocketMessageTypes.SUBSCRIBED | WebSocketMessageTypes.UNSUBSCRIBED | WebSocketMessageTypes.SUBSCRIPTIONS; id: string; topics?: string[] | undefined; topic?: string | undefined; }>; export type RequestMessage = Z.TypeOf; export type WsUpdateMessage = Z.TypeOf; export type WsErrorMessage = Z.TypeOf; export type WebsocketError = WsErrorMessage & Error; export type ResponseMessage = Z.TypeOf; export type WsOutgoingMessage = WsErrorMessage | WsUpdateMessage | ResponseMessage; export declare function parseWithSchema(message: any, schema: Z.Schema): T; export declare const parseResponseMessage: (message: any) => ResponseMessage; export declare const parseRequestMessage: (message: any) => RequestMessage; export declare const parseErrorMessage: (message: any) => WsErrorMessage; export declare const parseWsEventMessage: (message: any) => WsUpdateMessage; export declare const parseSubject: (topic: string) => undefined | TopicType; export declare const parseUserEvent: (status: any) => PrivateUserSubjects | undefined; export declare const encodeWebsocketMessage: (message: any) => string; export {}; //# sourceMappingURL=messages.d.ts.map