import { TypedEmitter } from 'tiny-typed-emitter'; export type ConnectOptions = { host: string; port: number; }; export type State = Error | 'connecting' | 'ready'; interface MpdClientEvents { ready: () => void; stateChanged: (state: State) => void; subsystemsChanged: (names: Array) => void; } export type MessageHandler = { isIdle: boolean; func: (err?: Error, msg?: string) => any; }; export type Command = string | [string, ...string[]]; export type KeyValuePairs = { [key: string]: string; }; type MpdResponse = { kind: 'error' | 'version' | 'data'; payload: string; }; export declare const parseResponse: (data: string) => { responses: Array; remain: string; }; export declare class MpdClient extends TypedEmitter { private buffer; private msgHandlerQueue; private socket?; connect(options?: ConnectOptions): Promise; private receive; private handleMessage; private idle; sendCommand(command: Command): Promise; sendCommands(commandList: Array): Promise; private send; getPlaylistInfo(): Promise; } export declare function parseKeyValueMessage(msg: string): KeyValuePairs; export declare function parseArrayMessage(msg: string): Array; export {};