// SPDX-License-Identifier: AGPL-3.0-or-later

export type {
	VoiceEngineV2CapabilitiesProjection,
	VoiceEngineV2ConnectionState,
	VoiceEngineV2DeviceProjection,
	VoiceEngineV2DeviceState,
	VoiceEngineV2DiagnosticsProjection,
	VoiceEngineV2E2eeLifecycleState,
	VoiceEngineV2GatewayState,
	VoiceEngineV2HardwareEncoderState,
	VoiceEngineV2InboundVideoState,
	VoiceEngineV2LifecycleState,
	VoiceEngineV2LiveKitState,
	VoiceEngineV2LocalMediaState,
	VoiceEngineV2MicrophoneState,
	VoiceEngineV2NativeAudioTapState,
	VoiceEngineV2NativeCaptureState,
	VoiceEngineV2NativeFrameSinkState,
	VoiceEngineV2OperationState,
	VoiceEngineV2OperationStatus,
	VoiceEngineV2OutputDeviceState,
	VoiceEngineV2ParticipantProjection,
	VoiceEngineV2PermissionState,
	VoiceEngineV2RoomState,
	VoiceEngineV2Snapshot,
	VoiceEngineV2StatsPresentationNetworkSummary,
	VoiceEngineV2StatsPresentationProjection,
	VoiceEngineV2StatsProjection,
	VoiceEngineV2Transition,
} from './core';
export {
	availableVoiceEngineV2Capabilities,
	createVoiceEngineV2InitialSnapshot,
	createVoiceEngineV2PermissionResult,
	emptyVoiceEngineV2DeviceInventory,
	isVoiceEngineV2CommandCompletionStale,
	selectVoiceEngineV2CapabilitiesProjection,
	selectVoiceEngineV2ConnectionProjection,
	selectVoiceEngineV2DeviceProjection,
	selectVoiceEngineV2DiagnosticsProjection,
	selectVoiceEngineV2E2eeProjection,
	selectVoiceEngineV2MediaProjection,
	selectVoiceEngineV2Model,
	selectVoiceEngineV2ParticipantProjection,
	selectVoiceEngineV2StatsPresentationProjection,
	selectVoiceEngineV2StatsProjection,
	selectVoiceEngineV2StatsSummary,
	selectVoiceEngineV2StreamNegotiation,
	selectVoiceEngineV2WatchedStreams,
	shouldApplyGatewayVoiceStateEcho,
	transitionVoiceEngineV2,
	unavailableVoiceEngineV2Capabilities,
} from './core';
export type {
	VoiceEngineV2CommandFailure,
	VoiceEngineV2CommandResult,
	VoiceEngineV2CommandSuccess,
	VoiceEngineV2Driver,
	VoiceEngineV2ExternalEventListener,
	VoiceEngineV2Implementation,
} from './implementations';
export {
	errorToVoiceEngineV2Error,
	VoiceEngineV2HostPortDriver,
	VoiceEngineV2HostPortImplementation,
	VoiceEngineV2ImplementationBase,
} from './implementations';
export type {
	VoiceEngineV2CameraEncodingPlan,
	VoiceEngineV2CameraEncodingPlanAction,
	VoiceEngineV2CameraEncodingPlanInput,
	VoiceEngineV2CameraEncodingPlanReason,
	VoiceEngineV2MicrophoneFailureContext,
	VoiceEngineV2MicrophoneOperationFailureAction,
	VoiceEngineV2OperationFailureLike,
	VoiceEngineV2OperationResultLike,
	VoiceEngineV2ScreenEncodingPlan,
	VoiceEngineV2ScreenEncodingPlanAction,
	VoiceEngineV2ScreenEncodingPlanInput,
	VoiceEngineV2ScreenEncodingPlanReason,
	VoiceEngineV2StatsNetworkSummary,
	VoiceEngineV2StatsSummary,
	VoiceEngineV2StatsTrackClassificationInput,
	VoiceEngineV2StatsTrackPublicationIds,
	VoiceEngineV2StatsTrackRoleCandidate,
	VoiceEngineV2StatsTrackRoleSelection,
	VoiceEngineV2StatsTrackSummary,
	VoiceStatsNetworkSummary,
	VoiceStatsSummary,
	VoiceStatsTrackClassificationInput,
	VoiceStatsTrackPublicationIds,
	VoiceStatsTrackRoleCandidate,
	VoiceStatsTrackRoleSelection,
	VoiceStatsTrackSummary,
} from './policies';
export {
	applyVoiceEngineV2CameraEncodingOptions,
	applyVoiceEngineV2ScreenEncodingOptions,
	asVoiceEngineV2StatsTrackSource,
	classifyVoiceEngineV2TrackStats,
	coalesceVoiceEngineV2OutboundStats,
	coerceVoiceEngineV2Stats,
	getVoiceEngineV2MicrophoneOperationFailureAction,
	hasVoiceEngineV2NativeHardwareEncoder,
	hasVoiceEngineV2NativeNvencEncoder,
	hasVoiceEngineV2ZeroCopyNativeInput,
	isMoreEfficientVoiceEngineV2VideoCodec,
	maxDecodableVoiceEngineV2VideoCodec,
	normalizeVoiceEngineV2HardwareEncoderCapabilities,
	planVoiceEngineV2CameraEncodingChange,
	planVoiceEngineV2NegotiatedVideoCodec,
	planVoiceEngineV2ScreenEncodingChange,
	summarizeVoiceEngineV2Stats,
	unavailableVoiceEngineV2HardwareEncoderCapabilities,
	VOICE_ENGINE_V2_VIDEO_CODEC_FLOOR,
	VOICE_ENGINE_V2_VIDEO_CODEC_PREFERENCE,
	VoiceEngineV2StatsTrackSource,
	voiceEngineV2VideoCodecRank,
	worseVoiceEngineV2VideoCodec,
} from './policies';
export type {
	CapabilitiesPort,
	DevicePort,
	DiagnosticsPort,
	GatewayPort,
	LiveKitMediaPort,
	LiveKitPort,
	NativeMediaPort,
	ParticipantProjectionIngestionPort,
	PermissionPort,
	StatsPort,
	SubscriptionPort,
	TimerPort,
	VoiceEngineV2EventSourcePort,
	VoiceEngineV2HostEventListener,
	VoiceEngineV2HostPorts,
	VoiceStateIngestionPort,
} from './ports';
export {unsupportedPortError} from './ports';
export type {
	VoiceEngineV2AudioControls,
	VoiceEngineV2AudioControlsPatch,
	VoiceEngineV2AudioDeviceRole,
	VoiceEngineV2AudioInputDevice,
	VoiceEngineV2AudioMode,
	VoiceEngineV2AudioOutputDevice,
	VoiceEngineV2CameraDevice,
	VoiceEngineV2CameraEncodingOptions,
	VoiceEngineV2CameraOptions,
	VoiceEngineV2Capabilities,
	VoiceEngineV2CodecGossipMessage,
	VoiceEngineV2CodecNegotiationState,
	VoiceEngineV2CodecStreamNegotiation,
	VoiceEngineV2Command,
	VoiceEngineV2CommandType,
	VoiceEngineV2ConnectionModel,
	VoiceEngineV2ConnectionQuality,
	VoiceEngineV2ConnectionStatus,
	VoiceEngineV2ConnectOptions,
	VoiceEngineV2DataOptions,
	VoiceEngineV2DeviceChangeReason,
	VoiceEngineV2DeviceInventory,
	VoiceEngineV2DiagnosticEntry,
	VoiceEngineV2DiagnosticLevel,
	VoiceEngineV2DisconnectReason,
	VoiceEngineV2E2eeState,
	VoiceEngineV2E2eeStatus,
	VoiceEngineV2Error,
	VoiceEngineV2Event,
	VoiceEngineV2GatewayDesiredVoiceState,
	VoiceEngineV2GatewayVoiceServer,
	VoiceEngineV2GatewayVoiceState,
	VoiceEngineV2GatewayVoiceStateWrite,
	VoiceEngineV2HardwareEncoderCapabilities,
	VoiceEngineV2ImplementationKind,
	VoiceEngineV2InboundStats,
	VoiceEngineV2InboundVideoFrame,
	VoiceEngineV2InboundVideoFrameStats,
	VoiceEngineV2InboundVideoTrack,
	VoiceEngineV2InboundVideoTrackSubscription,
	VoiceEngineV2LatencyDataPoint,
	VoiceEngineV2LifecycleReason,
	VoiceEngineV2LiveKitConnectionState,
	VoiceEngineV2LiveKitRoomState,
	VoiceEngineV2LocalStreamSource,
	VoiceEngineV2MediaModel,
	VoiceEngineV2MediaStatus,
	VoiceEngineV2MicrophoneOptions,
	VoiceEngineV2Model,
	VoiceEngineV2NativeAudioTapOptions,
	VoiceEngineV2NativeCaptureFrame,
	VoiceEngineV2NativeCaptureKind,
	VoiceEngineV2NativeCaptureOptions,
	VoiceEngineV2NativeCaptureSource,
	VoiceEngineV2NativeFrameSinkOptions,
	VoiceEngineV2OperationId,
	VoiceEngineV2OutboundStats,
	VoiceEngineV2OutputDeviceOptions,
	VoiceEngineV2Participant,
	VoiceEngineV2ParticipantVolumeOptions,
	VoiceEngineV2PcmFrame,
	VoiceEngineV2PermissionName,
	VoiceEngineV2PermissionResult,
	VoiceEngineV2PermissionStatus,
	VoiceEngineV2PerTrackStats,
	VoiceEngineV2RemoteTrackQuality,
	VoiceEngineV2RemoteTrackSubscriptionOptions,
	VoiceEngineV2ResourceKey,
	VoiceEngineV2ScreenAudioOptions,
	VoiceEngineV2ScreenEncodingOptions,
	VoiceEngineV2ScreenOptions,
	VoiceEngineV2ScreenPacing,
	VoiceEngineV2SendStats,
	VoiceEngineV2SourceLifecycleRemovedEvent,
	VoiceEngineV2SourceLifecycleTransitionedEvent,
	VoiceEngineV2SourceLifecycleTransitionKind,
	VoiceEngineV2Stats,
	VoiceEngineV2StatsSample,
	VoiceEngineV2StreamNegotiationProjection,
	VoiceEngineV2TimerOptions,
	VoiceEngineV2Track,
	VoiceEngineV2TrackKind,
	VoiceEngineV2TrackSource,
	VoiceEngineV2TransportInfo,
	VoiceEngineV2VideoAccelerationStatus,
	VoiceEngineV2VideoCodec,
	VoiceEngineV2VoiceStats,
	VoiceEngineV2WatchedStream,
	VoiceEngineV2WatchedStreamKey,
} from './protocol';
export {
	decodeVoiceEngineV2CodecGossip,
	encodeVoiceEngineV2CodecGossip,
	getVoiceEngineV2CommandResourceKey,
	getVoiceEngineV2CommandTypeResourceKey,
	VOICE_ENGINE_V2_CODEC_GOSSIP_TOPIC,
} from './protocol';
export type {
	VoiceEngineV2EventLogEntry,
	VoiceEngineV2EventLogSpillSink,
	VoiceEngineV2MemoryEventLogSpillSink,
	VoiceEngineV2RuntimeClock,
	VoiceEngineV2RuntimeListener,
	VoiceEngineV2RuntimeListenerPayload,
	VoiceEngineV2RuntimeOptions,
} from './runtime';
export {
	commandResultToEvent,
	createVoiceEngineV2MemoryEventLogSpillSink,
	VoiceEngineV2Controller,
	VoiceEngineV2Runtime,
} from './runtime';
export type {
	SourceFault,
	SourceLifecycleAction,
	SourceLifecycleClock,
	SourceLifecycleDispatchResult,
	SourceLifecycleEvent,
	SourceLifecycleSnapshotEntry,
	SourceLifecycleState,
	SourceLifecycleTransitionResult,
} from './source_isolation';
export {
	computeReconnectBackoffMs,
	createInitialActiveState,
	MAX_RECONNECT_ATTEMPTS,
	MAX_TRACKED_SOURCES,
	RECONNECT_BACKOFF_CAP_MS,
	RECONNECT_BACKOFF_STEP_MS,
	SourceLifecycleError,
	SourceLifecycleRegistry,
	transitionSourceLifecycle,
} from './source_isolation';
