export default class ServerClient {
    /**
     * Runs constructor.
     * @param {object} args - Options object.
     * @param {import("../configuration.js").default} args.configuration - Configuration instance.
     * @param {import("net").Socket} args.socket - Socket instance.
     * @param {number} args.clientCount - Client count.
     */
    constructor({ configuration, socket, clientCount }: {
        configuration: import("../configuration.js").default;
        socket: import("net").Socket;
        clientCount: number;
    });
    events: import("eventemitter3").EventEmitter<string | symbol, any>;
    configuration: import("../configuration.js").default;
    logger: Logger;
    socket: import("node:net").Socket;
    clientCount: number;
    remoteAddress: string | undefined;
    closeEmitted: boolean;
    /**
     * Runs listen.
     * @returns {void} - No return value.
     */
    listen(): void;
    /**
     * Runs end.
     * @returns {Promise<void>} - Resolves when complete.
     */
    end(): Promise<void>;
    /**
     * On socket data.
     * @param {Buffer} chunk - Chunk.
     * @returns {void} - No return value.
     */
    onSocketData: (chunk: Buffer) => void;
    /**
     * On socket end.
     * @returns {void} - No return value.
     */
    onSocketEnd: () => void;
    /**
     * On socket close.
     * @returns {void} - No return value.
     */
    onSocketClose: () => void;
    /**
     * On socket timeout.
     * @returns {void} - No return value.
     */
    onSocketTimeout: () => void;
    /**
     * On socket drain.
     * @returns {void} - No return value.
     */
    onSocketDrain: () => void;
    /**
     * On socket finish.
     * @returns {void} - No return value.
     */
    onSocketFinish: () => void;
    /**
     * On socket error.
     * @param {Error} error - Socket error.
     * @returns {void} - No return value.
     */
    onSocketError: (error: Error) => void;
    /**
     * Runs emit close.
     * @returns {void} - No return value.
     */
    emitClose(): void;
    /**
     * Runs send.
     * @param {string | Uint8Array} data - Data payload.
     * @returns {Promise<void>} - Resolves when complete.
     */
    send(data: string | Uint8Array): Promise<void>;
    /**
     * Runs set worker.
     * @param {import("worker_threads").Worker} newWorker - New worker.
     * @returns {void} - No return value.
     */
    setWorker(newWorker: import("worker_threads").Worker): void;
    worker: import("node:worker_threads").Worker | undefined;
}
import Logger from "../logger.js";
//# sourceMappingURL=server-client.d.ts.map