import { DataConnection, MediaConnection } from "peerjs";
import { SignallerConfig } from "./signallers";
import { Channels } from "./channels";
export declare type ConnectionState = {
    connected: boolean;
    connect: (config?: ConnectionConfig) => Promise<void>;
    connections: Map<string, DataConnection>;
    mediaConnections: Map<string, MediaConnection>;
    localStream: MediaStream | undefined;
    disconnect: () => void;
    voice: boolean;
    setVoice: (v: boolean) => void;
    setInputDevice: (deviceId: string) => void;
} & Pick<Channels, "useChannel">;
export declare type ConnectionConfig = {
    iceServers?: RTCIceServer[];
    voice?: boolean;
    inputDeviceId?: string;
} & SignallerConfig;
export declare const useConnection: (externalConfig: ConnectionConfig) => ConnectionState;
