import { PeerConnectionOpenedEventPayload, PeerConnectionClosedEventPayload, MediaTrackMutedEventPayload, MediaTrackUnmutedEventPayload, MediaTrackAddedEventPayload, MediaTrackRemovedEventPayload, DataChannelOpenEventPayload, DataChannelClosedEventPayload, DataChannelErrorEventPayload, ClientEventTypes, PeerConnectionStateChangedEventPayload, IceConnectionStateChangedEventPayload, NegotiationNeededEventPayload, IceCandidateEventPayload, ProducerAddedEventPayload, DataProducerClosedEventPayload, ProducerRemovedEventPayload, ProducerPausedEventPayload, ProducerResumedEventPayload, ConsumerAddedEventPayload, ConsumerRemovedEventPayload, DataProducerCreatedEventPayload, DataConsumerCreatedEventPayload, DataConsumerClosedEventPayload, ConsumerPausedEventPayload, ConsumerResumedEventPayload, ClientJoinedEventPayload, PeerConnectionIcePathChangedEventPayload, IceRestartEventPayload, IceRestartRecommendedEventPayload, LongPcConnectionEstablishmentEventPayload, ExcessiveSynthesizedAudioEventPayload, ClientLeftEventPayload, IceGatheringStateChangedEventPayload, SignalingStateChangedEventPayload, IceCandidateErrorEventPayload, CodecChangedEventPayload, VideoResolutionChangedEventPayload, SimulcastLayerChangedEventPayload, CaptureTrackEndedEventPayload, CaptureTrackMutedEventPayload, StatsCollectionGapEventPayload } from "../schema/ClientEventTypes";
export type ClientEventPayloadMap = {
    [ClientEventTypes.PEER_CONNECTION_ICE_PATH_CHANGED]: PeerConnectionIcePathChangedEventPayload;
    [ClientEventTypes.ICE_RESTART]: IceRestartEventPayload;
    [ClientEventTypes.ICE_RESTART_RECOMMENDED]: IceRestartRecommendedEventPayload;
    [ClientEventTypes.LONG_PC_CONNECTION_ESTABLISHMENT]: LongPcConnectionEstablishmentEventPayload;
    [ClientEventTypes.EXCESSIVE_SYNTHESIZED_AUDIO]: ExcessiveSynthesizedAudioEventPayload;
    [ClientEventTypes.CODEC_CHANGED]: CodecChangedEventPayload;
    [ClientEventTypes.VIDEO_RESOLUTION_CHANGED]: VideoResolutionChangedEventPayload;
    [ClientEventTypes.SIMULCAST_LAYER_CHANGED]: SimulcastLayerChangedEventPayload;
    [ClientEventTypes.CAPTURE_TRACK_ENDED]: CaptureTrackEndedEventPayload;
    [ClientEventTypes.CAPTURE_TRACK_MUTED]: CaptureTrackMutedEventPayload;
    [ClientEventTypes.STATS_COLLECTION_GAP]: StatsCollectionGapEventPayload;
    [ClientEventTypes.CLIENT_JOINED]: ClientJoinedEventPayload;
    [ClientEventTypes.CLIENT_LEFT]: ClientLeftEventPayload;
    [ClientEventTypes.PEER_CONNECTION_OPENED]: PeerConnectionOpenedEventPayload;
    [ClientEventTypes.PEER_CONNECTION_CLOSED]: PeerConnectionClosedEventPayload;
    [ClientEventTypes.MEDIA_TRACK_ADDED]: MediaTrackAddedEventPayload;
    [ClientEventTypes.MEDIA_TRACK_REMOVED]: MediaTrackRemovedEventPayload;
    [ClientEventTypes.MEDIA_TRACK_MUTED]: MediaTrackMutedEventPayload;
    [ClientEventTypes.MEDIA_TRACK_UNMUTED]: MediaTrackUnmutedEventPayload;
    [ClientEventTypes.ICE_GATHERING_STATE_CHANGED]: IceGatheringStateChangedEventPayload;
    [ClientEventTypes.PEER_CONNECTION_STATE_CHANGED]: PeerConnectionStateChangedEventPayload;
    [ClientEventTypes.ICE_CONNECTION_STATE_CHANGED]: IceConnectionStateChangedEventPayload;
    [ClientEventTypes.SIGNALING_STATE_CHANGE]: SignalingStateChangedEventPayload;
    [ClientEventTypes.DATA_CHANNEL_OPEN]: DataChannelOpenEventPayload;
    [ClientEventTypes.DATA_CHANNEL_CLOSED]: DataChannelClosedEventPayload;
    [ClientEventTypes.DATA_CHANNEL_ERROR]: DataChannelErrorEventPayload;
    [ClientEventTypes.NEGOTIATION_NEEDED]: NegotiationNeededEventPayload;
    [ClientEventTypes.ICE_CANDIDATE]: IceCandidateEventPayload;
    [ClientEventTypes.ICE_CANDIDATE_ERROR]: IceCandidateErrorEventPayload;
    [ClientEventTypes.PRODUCER_ADDED]: ProducerAddedEventPayload;
    [ClientEventTypes.PRODUCER_REMOVED]: ProducerRemovedEventPayload;
    [ClientEventTypes.PRODUCER_PAUSED]: ProducerPausedEventPayload;
    [ClientEventTypes.PRODUCER_RESUMED]: ProducerResumedEventPayload;
    [ClientEventTypes.CONSUMER_ADDED]: ConsumerAddedEventPayload;
    [ClientEventTypes.CONSUMER_REMOVED]: ConsumerRemovedEventPayload;
    [ClientEventTypes.CONSUMER_PAUSED]: ConsumerPausedEventPayload;
    [ClientEventTypes.CONSUMER_RESUMED]: ConsumerResumedEventPayload;
    [ClientEventTypes.DATA_PRODUCER_CREATED]: DataProducerCreatedEventPayload;
    [ClientEventTypes.DATA_PRODUCER_CLOSED]: DataProducerClosedEventPayload;
    [ClientEventTypes.DATA_CONSUMER_CREATED]: DataConsumerCreatedEventPayload;
    [ClientEventTypes.DATA_CONSUMER_CLOSED]: DataConsumerClosedEventPayload;
};
export type ClientEventPayloadProviderFunction<In extends Record<string, unknown> = Record<string, unknown>, Out extends Record<string, unknown> = Record<string, unknown>> = (input: In) => Out;
export declare class ClientEventPayloadProvider {
    createClientJoinedEventPayload: ClientEventPayloadProviderFunction<ClientJoinedEventPayload>;
    createClientLeftEventPayload: ClientEventPayloadProviderFunction<ClientLeftEventPayload>;
    createPeerConnectionOpenedEventPayload: ClientEventPayloadProviderFunction<PeerConnectionOpenedEventPayload>;
    createPeerConnectionClosedEventPayload: ClientEventPayloadProviderFunction<PeerConnectionClosedEventPayload>;
    createMediaTrackMutedEventPayload: ClientEventPayloadProviderFunction<MediaTrackMutedEventPayload>;
    createMediaTrackUnmutedEventPayload: ClientEventPayloadProviderFunction<MediaTrackUnmutedEventPayload>;
    createMediaTrackAddedEventPayload: ClientEventPayloadProviderFunction<MediaTrackAddedEventPayload>;
    createMediaTrackRemovedEventPayload: ClientEventPayloadProviderFunction<MediaTrackRemovedEventPayload>;
    createIceGatheringStateChangedEventPayload: ClientEventPayloadProviderFunction<IceGatheringStateChangedEventPayload>;
    createPeerConnectionStateChangedEventPayload: ClientEventPayloadProviderFunction<PeerConnectionStateChangedEventPayload>;
    createIceConnectionStateChangedEventPayload: ClientEventPayloadProviderFunction<IceConnectionStateChangedEventPayload>;
    createDataChannelOpenEventPayload: ClientEventPayloadProviderFunction<DataChannelOpenEventPayload>;
    createDataChannelClosedEventPayload: ClientEventPayloadProviderFunction<DataChannelClosedEventPayload>;
    createDataChannelErrorEventPayload: ClientEventPayloadProviderFunction<DataChannelErrorEventPayload>;
    createNegotiationNeededEventPayload: ClientEventPayloadProviderFunction<NegotiationNeededEventPayload>;
    createIceCandidateEventPayload: ClientEventPayloadProviderFunction<IceCandidateEventPayload>;
    createSignalingStateChangedEventPayload: ClientEventPayloadProviderFunction<SignalingStateChangedEventPayload>;
    createIceCandidateErrorEventPayload: ClientEventPayloadProviderFunction<IceCandidateErrorEventPayload>;
    createCodecChangedEventPayload: ClientEventPayloadProviderFunction<CodecChangedEventPayload>;
    createVideoResolutionChangedEventPayload: ClientEventPayloadProviderFunction<VideoResolutionChangedEventPayload>;
    createSimulcastLayerChangedEventPayload: ClientEventPayloadProviderFunction<SimulcastLayerChangedEventPayload>;
    createCaptureTrackEndedEventPayload: ClientEventPayloadProviderFunction<CaptureTrackEndedEventPayload>;
    createCaptureTrackMutedEventPayload: ClientEventPayloadProviderFunction<CaptureTrackMutedEventPayload>;
    createStatsCollectionGapEventPayload: ClientEventPayloadProviderFunction<StatsCollectionGapEventPayload>;
    createProducerAddedEventPayload: ClientEventPayloadProviderFunction<ProducerAddedEventPayload>;
    createProducerRemovedEventPayload: ClientEventPayloadProviderFunction<ProducerRemovedEventPayload>;
    createProducerPausedEventPayload: ClientEventPayloadProviderFunction<ProducerPausedEventPayload>;
    createProducerResumedEventPayload: ClientEventPayloadProviderFunction<ProducerResumedEventPayload>;
    createConsumerAddedEventPayload: ClientEventPayloadProviderFunction<ConsumerAddedEventPayload>;
    createConsumerRemovedEventPayload: ClientEventPayloadProviderFunction<ConsumerRemovedEventPayload>;
    createConsumerPausedEventPayload: ClientEventPayloadProviderFunction<ConsumerPausedEventPayload>;
    createConsumerResumedEventPayload: ClientEventPayloadProviderFunction<ConsumerResumedEventPayload>;
    createDataProducerCreatedEventPayload: ClientEventPayloadProviderFunction<DataProducerCreatedEventPayload>;
    createDataProducerClosedEventPayload: ClientEventPayloadProviderFunction<DataProducerClosedEventPayload>;
    createDataConsumerCreatedEventPayload: ClientEventPayloadProviderFunction<DataConsumerCreatedEventPayload>;
    createDataConsumerClosedEventPayload: ClientEventPayloadProviderFunction<DataConsumerClosedEventPayload>;
    createPayload<K extends keyof ClientEventPayloadMap>(eventType: K, input: ClientEventPayloadMap[K]): Record<string, unknown>;
}
