import type { LiveSpeakerTurnChunk, LiveSpeakerTurnConfig, LiveSpeakerTurnEventListener, LiveSpeakerTurnSessionState, LiveSpeakerTurnSummary } from '../types/interfaces';
/**
 * Replayable live speaker-turn session built from VAD + Speaker ID adapters.
 *
 * This class intentionally stays in TypeScript and has no native dependency. It
 * owns the event contract and deterministic sample-clock behavior so later PRs
 * can wire real mobile audio sources without changing public events.
 */
export declare class LiveSpeakerTurnSession {
    private readonly config;
    private readonly listeners;
    private readonly emittedEvents;
    private readonly ringBuffer;
    private eventCount;
    private finalizedTurnCount;
    private readonly finalizedSpeakerIds;
    private readonly centroids;
    private nextSample;
    private nextTurnIndex;
    private nextSpeakerIndex;
    private activeTurnId;
    private activeTurnStartSample;
    private speechActive;
    private speakerIdUsable;
    private released;
    constructor(config: LiveSpeakerTurnConfig);
    onEvent(listener: LiveSpeakerTurnEventListener): () => void;
    getState(): LiveSpeakerTurnSessionState;
    acceptChunk(chunk: LiveSpeakerTurnChunk): Promise<void>;
    flush(): Promise<void>;
    reset(): void;
    release(): void;
    getSummary(): LiveSpeakerTurnSummary;
    private startTurn;
    private finishTurn;
    private handleSpeakerIdFailure;
    private emitFinalTurn;
    private assignSpeaker;
    private appendToRingBuffer;
    private samplesForRange;
    private emit;
    private ensureNotReleased;
}
//# sourceMappingURL=LiveSpeakerTurnSession.d.ts.map