import { WalkRightUpResponse, WalkRightUpForm, WalkRightUpQuestion, WalkRightUpEvents } from './types';

export default class Api {
    private readonly client;
    private company;
    private listeners;
    constructor(apiKey: string);
    private init;
    loadQuestions(): Promise<WalkRightUpResponse<{
        questions: WalkRightUpQuestion[];
    }>>;
    sendMessage(form: WalkRightUpForm): Promise<WalkRightUpResponse<void>>;
    createQueue(form: WalkRightUpForm): Promise<WalkRightUpResponse<{
        url: string;
    }>>;
    currentQueue(): Promise<WalkRightUpResponse<{
        url: string;
    }>>;
    addListener(event: WalkRightUpEvents, listener: (result: any) => void): Promise<void>;
    removeListener(event: WalkRightUpEvents, listener: (result: any) => void): Promise<void>;
    /**
     * Utilized to send an initial online status to the registered listeners
     * @private
     */
    private agentsOnline;
    /**
     * Utilized to send an queue length status to the registered listeners
     * @private
     */
    private queueLength;
    private wrapResponse;
}
