import EventEmitter from "events";
type Event<T extends EventType> = T extends "change" ? {
    old: number;
    new: number;
} : {
    old: boolean;
    new: boolean;
};
type EventType = "change" | "toggle";
declare const initDevice: (device: number) => {
    on: <T extends EventType>(event: T, cb: (v: Event<T>) => void) => EventEmitter<[never]>;
    off: <T extends EventType>(event: T, cb: (v: Event<T>) => void) => EventEmitter<[never]>;
    once: <T extends EventType>(event: T, cb: (v: Event<T>) => void) => EventEmitter<[never]>;
    removeAllListeners: () => EventEmitter<[never]>;
    start: (every: number) => void;
    stop: () => void;
    get: () => number;
    set: (value: number) => void;
    increase: (value: number) => void;
    decrease: (value: number) => void;
    mute: () => void;
    unmute: () => void;
    isMuted: () => boolean;
    toggle: () => void;
};
type Instance = ReturnType<typeof initDevice>;
type ProxyInstances = {
    speaker: Instance;
    mic: Instance;
};
declare const proxy: ProxyInstances;
export default proxy;
