import type { ConferenceStatus } from '@voxeet/voxeet-web-sdk/types/models/Conference';
import type Conference from '@voxeet/voxeet-web-sdk/types/models/Conference';
import type ConferenceOptions from '@voxeet/voxeet-web-sdk/types/models/ConferenceOptions';
import type { JoinOptions, ParticipantInfo } from '@voxeet/voxeet-web-sdk/types/models/Options';
import type { Participant } from '@voxeet/voxeet-web-sdk/types/models/Participant';
import { ReactNode } from 'react';
import type { ParticipantStatus } from '../hooks/types/Participants';
declare type CommsContext = {
    openSession: (participantInfo: ParticipantInfo) => Promise<void>;
    closeSession: () => Promise<void>;
    createConference: (options: ConferenceOptions) => Promise<Conference>;
    joinConference: (conference: Conference, options: JoinOptions) => Promise<Conference>;
    leaveConference: () => Promise<void>;
    toggleAudio: () => Promise<void>;
    isAudio: boolean;
    toggleVideo: () => Promise<void>;
    isVideo: boolean;
    startParticipantAudio: (participant: Participant) => Promise<void>;
    stopParticipantAudio: (participant: Participant) => Promise<void>;
    participant: Participant | null;
    conference: Conference | null;
    conferenceStatus: ConferenceStatus | null;
    participants: Participant[];
    participantsStatus: {
        [key: string]: ParticipantStatus;
    };
    addIsSpeakingListener: (participant: Participant) => () => void;
    isLocalVideoLoading: boolean;
    isLocalAudioLoading: boolean;
    resetVideo: () => void;
    resetAudio: () => void;
};
declare type CommsProviderProps = {
    children: ReactNode;
    /**
     * Client access token to use to initialize the SDK.
     */
    token: string;
    /**
     * Function to use to refresh the client access token.
     */
    refreshToken: () => Promise<string>;
};
export declare const CommsContext: import("react").Context<CommsContext>;
declare const CommsProvider: ({ children, token, refreshToken }: CommsProviderProps) => import("@emotion/react/jsx-runtime").JSX.Element;
export default CommsProvider;
