export default class VelociousHttpServerWorkerHandlerWorkerThread {
    /**
     * Runs constructor.
     * @param {object} args - Options object.
     * @param {import("worker_threads").parentPort} args.parentPort - Parent port.
     * @param {{debug: boolean, directory: string, environment: string, workerCount: number}} args.workerData - Worker configuration details.
     */
    constructor({ parentPort, workerData }: {
        parentPort: import("node:worker_threads").MessagePort | null;
        workerData: {
            debug: boolean;
            directory: string;
            environment: string;
            workerCount: number;
        };
    });
    /**
     * Narrows the runtime value to the documented type.
      @type {Record<number, Client>} */
    clients: Record<number, Client>;
    logger: Logger;
    parentPort: import("node:worker_threads").MessagePort;
    workerData: {
        debug: boolean;
        directory: string;
        environment: string;
        workerCount: number;
    };
    workerCount: number;
    /**
     * Runs initialize.
     * @returns {Promise<void>} - Resolves when complete.
     */
    initialize(): Promise<void>;
    /**
     * Narrows the runtime value to the documented type.
      @type {import("../../configuration.js").default} */
    configuration: import("../../configuration.js").default | undefined;
    websocketEvents: WebsocketEvents | undefined;
    application: Application | undefined;
    /**
     * On command.
     * @param {object} data - Data payload.
     * @param {string} data.command - Command.
     * @param {Buffer | Uint8Array | string} [data.chunk] - Chunk.
     * @param {string} [data.remoteAddress] - Remote address.
     * @param {number} [data.clientCount] - Client count.
     * @param {string} [data.channel] - Channel name.
     * @param {string} [data.createdAt] - Event creation time.
     * @param {string} [data.eventId] - Event identifier.
     * @param {number} [data.requestId] - Debug request id.
     * @param {?} [data.payload] - Payload data.
     * @param {Record<string, ?>} [data.broadcastParams] - V2 broadcast filter params.
     * @param {?} [data.body] - V2 broadcast body.
     */
    onCommand: (data: {
        command: string;
        chunk?: string | Buffer<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | undefined;
        remoteAddress?: string | undefined;
        clientCount?: number | undefined;
        channel?: string | undefined;
        createdAt?: string | undefined;
        eventId?: string | undefined;
        requestId?: number | undefined;
        payload?: unknown;
        broadcastParams?: Record<string, any> | undefined;
        body?: unknown;
    }) => Promise<void>;
    /**
     * Runs handle new client.
     * @param {object} data - Data payload.
     * @param {number} [data.clientCount] - Client count.
     * @param {string} [data.remoteAddress] - Remote address.
     * @returns {void}
     */
    handleNewClient(data: {
        clientCount?: number | undefined;
        remoteAddress?: string | undefined;
    }): void;
    /**
     * Runs handle client write.
     * @param {object} data - Data payload.
     * @param {Buffer | Uint8Array | string} [data.chunk] - Chunk.
     * @param {number} [data.clientCount] - Client count.
     * @returns {Promise<void>} Resolves when the client write is dispatched.
     */
    handleClientWrite(data: {
        chunk?: string | Buffer<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | undefined;
        clientCount?: number | undefined;
    }): Promise<void>;
    /**
     * Runs handle websocket event.
     * @param {object} data - Data payload.
     * @param {string} [data.channel] - Channel name.
     * @param {string} [data.createdAt] - Event creation time.
     * @param {string} [data.eventId] - Event identifier.
     * @param {?} [data.payload] - Payload data.
     * @returns {Promise<void>} Resolves when the websocket event is dispatched.
     */
    handleWebsocketEvent(data: {
        channel?: string | undefined;
        createdAt?: string | undefined;
        eventId?: string | undefined;
        payload?: unknown;
    }): Promise<void>;
    /**
     * Runs handle websocket v2 broadcast.
     * @param {object} data - Data payload.
     * @param {Record<string, ?>} [data.broadcastParams] - V2 broadcast filter params.
     * @param {?} [data.body] - V2 broadcast body.
     * @param {string} [data.channel] - Channel name.
     * @param {string} [data.eventId] - Event identifier.
     * @returns {void}
     */
    handleWebsocketV2Broadcast(data: {
        broadcastParams?: Record<string, any> | undefined;
        body?: unknown;
        channel?: string | undefined;
        eventId?: string | undefined;
    }): void;
    /**
     * Runs handle debug snapshot.
     * @param {object} data - Data payload.
     * @param {number} [data.requestId] - Debug request id.
     * @returns {void}
     */
    handleDebugSnapshot(data: {
        requestId?: number | undefined;
    }): void;
    /**
     * Runs handle shutdown.
     * @returns {Promise<void>} Resolves after worker shutdown has been requested.
     */
    handleShutdown(): Promise<void>;
    /**
     * Runs broadcast websocket event.
     * @param {object} args - Options object.
     * @param {string} args.channel - Channel name.
     * @param {string | undefined} args.createdAt - Event creation time.
     * @param {string | undefined} args.eventId - Event identifier.
     * @param {?} args.payload - Payload data.
     * @returns {Promise<void>} - Resolves when complete.
     */
    broadcastWebsocketEvent({ channel, createdAt, eventId, payload }: {
        channel: string;
        createdAt: string | undefined;
        eventId: string | undefined;
        payload: unknown;
    }): Promise<void>;
}
import Client from "../client/index.js";
import Logger from "../../logger.js";
import WebsocketEvents from "../websocket-events.js";
import Application from "../../application.js";
//# sourceMappingURL=worker-thread.d.ts.map