import { EventEmitter } from 'eventemitter3';
import { Transcript } from './TranscriptManager.js';
export interface TrilletAgentConfig {
    apiKey?: string;
    workspaceId?: string;
    agentId: string;
    variables?: Record<string, any>;
    callbackUrl?: string;
    mode?: 'voice' | 'text';
}
export declare class TrilletAgent extends EventEmitter {
    private sdk;
    private config;
    private sdkToken;
    private transcriptManager;
    constructor(config: TrilletAgentConfig);
    private setupEventForwarding;
    /**
     * Set up default RPC handlers for common agent interactions
     * This should be called after connection is established
     */
    private setupDefaultRpcHandlers;
    startCall(): Promise<void>;
    startPublicCall(): Promise<void>;
    endCall(): void;
    toggleMicrophone(enabled: boolean): void;
    get isAssistantSpeaking(): boolean;
    getTranscripts(): Transcript[];
    getCurrentTranscript(): {
        [key: string]: string;
    };
    /**
     * Register an RPC method handler for receiving calls from the agent
     * @param method - The RPC method name to handle
     * @param handler - The function to handle the RPC call
     */
    registerRpcMethod(method: string, handler: (data: any) => Promise<any> | any): void;
    /**
     * Send an RPC call to the agent
     * @param method - The RPC method name
     * @param payload - The data to send
     * @param responseTimeout - Timeout in milliseconds (default: 30000)
     */
    sendRpcMessage(method: string, payload: any, responseTimeout?: number): Promise<any>;
    sendTextMessage(text: string): void;
}
