import { IHMSStore } from '../IHMSStore';
import * as sdkTypes from '../internal';
import { HMSChangeMultiTrackStateRequest, HMSChangeTrackStateRequest, HMSDeviceChangeEvent, HMSException, HMSGenericTypes, HMSLeaveRoomRequest, HMSMessage, HMSPeer, HMSPlaylistItem, HMSTrackID } from '../schema';
import { HMSNotificationCallback, HMSNotificationTypeParam, IHMSNotifications } from '../schema/notification';
export declare class HMSNotifications<T extends HMSGenericTypes = {
    sessionStore: Record<string, any>;
}> implements IHMSNotifications {
    private id;
    private eventEmitter;
    private store;
    constructor(store: IHMSStore<T>);
    onNotification: <T_1 extends HMSNotificationTypeParam>(cb: HMSNotificationCallback<T_1>, type?: T_1 | undefined) => () => void;
    sendPlaylistTrackEnded<T>(item: HMSPlaylistItem<T>): void;
    sendDeviceChange(request: HMSDeviceChangeEvent): void;
    sendLeaveRoom(request: HMSLeaveRoomRequest): void;
    sendPeerList(peers: HMSPeer[]): void;
    sendPeerUpdate(type: sdkTypes.HMSPeerUpdate, peer: HMSPeer | null): void;
    sendTrackUpdate(type: sdkTypes.HMSTrackUpdate, trackID: HMSTrackID): void;
    sendMessageReceived(message: HMSMessage): void;
    sendError(error: HMSException): void;
    sendReconnecting(error: HMSException): void;
    sendReconnected(): void;
    sendChangeTrackStateRequest(request: HMSChangeTrackStateRequest): void;
    sendChangeMultiTrackStateRequest(request: HMSChangeMultiTrackStateRequest): void;
    sendPollUpdate(type: sdkTypes.HMSPollsUpdate, pollID: string): void;
    sendTranscriptionUpdate(transcriptions?: sdkTypes.HMSTranscriptionInfo[]): void;
    private emitEvent;
    private createNotification;
}
