/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and re-run the "tsr-schema-types" tool to regenerate this file.
 */
import type { ActionExecutionResult } from "../actions";
export interface WebsocketClientOptions {
    webSocket: {
        /**
         * URI to connect to, e.g. 'ws://localhost:8080'
         */
        uri: string;
        /**
         * Interval between reconnection attempts in milliseconds
         */
        reconnectInterval?: number;
    };
    bufferEncoding?: 'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex';
}
export type SomeMappingWebsocketClient = Record<string, never>;
export interface SendWebSocketMessagePayload {
    /**
     * Message to send over WebSocket
     */
    message: string;
    /**
     * Optional queue ID for ordered message handling
     */
    queueId?: string;
}
export declare enum WebsocketClientActions {
    Reconnect = "reconnect",
    SendWebSocketMessage = "sendWebSocketMessage"
}
export interface WebsocketClientActionMethods {
    [WebsocketClientActions.Reconnect]: (payload: Record<string, never>) => Promise<ActionExecutionResult<void>>;
    [WebsocketClientActions.SendWebSocketMessage]: (payload: SendWebSocketMessagePayload) => Promise<ActionExecutionResult<void>>;
}
export interface WebsocketClientDeviceTypes {
    Options: WebsocketClientOptions;
    Mappings: SomeMappingWebsocketClient;
    Actions: WebsocketClientActionMethods;
}
//# sourceMappingURL=websocketClient.d.ts.map