import ws from 'ws';
import http from 'http';
import winston from 'winston';
import { StreamOptions } from './interfaces/StreamOptions';
export declare class PiStreamServer {
    /**
     * Static logger of PiStreamer. You can change the logger by giving
     * a winston.Logger object.
     * ```ts
     * PiStreamServer.log = winston.createLogger(...);
     * ```
     */
    static log: winston.Logger;
    private buffer;
    private streamer?;
    private readStream?;
    private streamClients;
    private wsServer;
    private options;
    private readonly defaultOptions;
    /**
     * PiStreamServer constructor.
     * @param wsServer - Instance of a websocket server.
     * @param options - Options of the stream.
     */
    constructor(wsServer: ws.Server, options?: StreamOptions);
    /**
     * Set the options of the stream.
     * @param options
     */
    setOptions(options: StreamOptions): void;
    /**
     * Stop the feed and kill the raspivid process.
     */
    protected stopFeed: () => void;
    /**
     * Start the feed by creating one if there's none or by continuing the existant one.
     */
    protected startFeed: () => void;
    /**
     * Create a new feed by starting a new raspivid process.
     */
    protected createFeed: () => void;
    /**
     * Broadcast the feed to all the websocket client connected.
     * @param data - Video stream.
     */
    protected broadcast: (data: any) => void;
    /**
     * Actions done when a new client is connected.
     * @param socket - Client socket.
     */
    protected newClient: (socket: ws) => void;
}
/**
 * Creates an instance of PiStreamServer and returns the Http server linked to it.
 * @param requestListner - Request listener.
 * @param video - Options of the stream.
 */
export declare const createServer: (requestListener: http.RequestListener, video?: StreamOptions | undefined) => http.Server;
/**
 * Copy the client file "http-live-player.js" to the given path.
 * @param path - Path of the target folder.
 */
export declare const createClient: (path?: string) => void;
//# sourceMappingURL=PiStream.d.ts.map