///
import { EventEmitter } from 'events';
import { AuthInfo, ClientInfo, Module, ServerInfo, Sink, SinkInput, Source, SourceOutput, SubscribeInfo, VolumeInfo } from './types/pulseaudio';
export interface TCPSocket {
type: 'tcp';
port: number;
host: string;
}
export interface UnixSocket {
type: 'unix';
path: string;
}
export default class PulseAudio extends EventEmitter {
address: TCPSocket | UnixSocket;
cookie: Buffer;
connected: boolean;
protocol: number;
private socket;
private chunks;
private requests;
private lastRequestId;
constructor(address: string, cookie?: string);
connect(): Promise;
disconnect(): void;
setClientName(clientName?: string): Promise;
private authenticate;
subscribe(): Promise;
getServerInfo(): Promise;
getSink(sink: number | string): Promise;
getSinkList(): Promise;
setSinkVolume(sink: number | string, volume: number): Promise;
getSinkInputList(): Promise;
getSinkInput(sinkInput: number | string): Promise;
moveSinkInput(sinkInput: number, sink: number): Promise;
getSource(source: number | string): Promise;
getSourceList(): Promise;
setSourceVolume(source: number | string, volume: number): Promise;
getSourceOutput(sourceOutput: number | string): Promise;
getSourceOutputList(): Promise;
moveSourceOutput(sourceOutput: number, source: number): Promise;
getModule(module: number): Promise;
getModuleList(): Promise;
loadModule(name: string, argument: string): Promise;
unloadModule(module: number): Promise;
private onReadable;
private requestId;
private sendRequest;
private resolveRequest;
private rejectRequest;
private parseReply;
private parseEvent;
private parseAddress;
private parseCookie;
}