import { Status } from '../enums/Status';
import { AuthPersonalCredentials } from '../interfaces/auth/PersonalCredentials';
import { GetHostsPayload } from '../interfaces/host/GetPayload';
import { GetHostsQueryParams } from '../interfaces/host/GetQueryParams';
export declare class Client {
    status: Status;
    sessionID?: string;
    peerID?: string;
    private webrtcPeerConnection?;
    private websocket;
    /**
     * Authenticate client using the _personal_ strategy
     *
     * @param {@link AuthPersonalCredentials} credentials Credentials to use
     *    in the authentication request
     */
    authPersonal(credentials: AuthPersonalCredentials): Promise<void>;
    /**
     * Obtain a list of hosts matching specified `mode` and `public` criteria
     *
     * @param {@link GetHostsQueryParams} queryParams get hosts request
     *    query params object representation
     */
    getHosts(queryParams: GetHostsQueryParams): Promise<GetHostsPayload>;
    /**
     * @param  {{htmlVideo:HTMLVideoElement;htmlAudio:HTMLAudioElement;secret?:string;}} config
     */
    connect(config: {
        htmlVideo: HTMLVideoElement;
        htmlAudio: HTMLAudioElement;
        secret?: string;
    }): Promise<void>;
}
