import { default as React, ReactNode } from 'react';
import { VoxketClient } from '../core/client';
import { VoxketConfig, VoxketSession, SessionState, SessionMetrics, VoxketError, ParticipantInfo, ChatMessage, TranscriptionSegment } from '../types/core';
export interface VoxketContextValue {
    client: VoxketClient | null;
    isConnected: boolean;
    isConnecting: boolean;
    connectionError: VoxketError | null;
    currentSession: VoxketSession | null;
    sessionState: SessionState;
    sessionMetrics: SessionMetrics | null;
    participants: ParticipantInfo[];
    chatMessages: ChatMessage[];
    transcriptions: TranscriptionSegment[];
    connect: () => Promise<void>;
    disconnect: () => Promise<void>;
    createSession: (agentId: string, options?: any) => Promise<VoxketSession>;
    endSession: () => Promise<SessionMetrics | null>;
    sendChatMessage: (message: string) => Promise<void>;
    setMicrophoneEnabled: (enabled: boolean) => Promise<void>;
    setCameraEnabled: (enabled: boolean) => Promise<void>;
    startScreenShare: () => Promise<void>;
    stopScreenShare: () => Promise<void>;
}
declare const VoxketContext: React.Context<VoxketContextValue | null>;
export interface VoxketProviderProps {
    config: VoxketConfig;
    children: ReactNode;
    autoConnect?: boolean;
    client?: VoxketClient;
}
export declare function VoxketProvider({ config, children, autoConnect, client: existingClient }: VoxketProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function useVoxket(): VoxketContextValue;
export { VoxketContext };
