import { VideoMemberContract, EntityUpdated, VideoMemberJoinedEventParams, VideoMemberLeftEventParams, VideoMemberUpdatedEventParams, VideoMemberTalkingEventParams } from '@signalwire/core';
import { RoomSession } from '../RoomSession';
/**
 * Represents a member of a room session. You receive instances of this type by
 * listening to room events, for example on a {@link RoomSession} object.
 *
 * > ℹ️ State of RoomSessionMember objects
 * >
 * > The state of RoomSessionMember objects, for example `member.visible`, is
 * > immutable. When you receive instances of RoomSessionMember from event
 * > listeners, the state of the member always refers to that specific point in
 * > time and remains fixed for the whole lifetime of the object.
 */
export interface RoomSessionMember extends VideoMemberContract {
    setPayload(payload: RoomSessionMemberEventParams): void;
}
export type RoomSessionMemberUpdated = EntityUpdated<RoomSessionMember>;
export type RoomSessionMemberEventParams = (VideoMemberJoinedEventParams | VideoMemberLeftEventParams | VideoMemberUpdatedEventParams) & VideoMemberTalkingEventParams;
export interface RoomSessionOptions {
    roomSession: RoomSession;
    payload: RoomSessionMemberEventParams;
}
export declare class RoomSessionMember {
    private _client;
    private _payload;
    constructor(options: RoomSessionOptions);
    get id(): string;
    get memberId(): string;
    get roomSessionId(): string;
    get roomId(): string;
    get parentId(): string | undefined;
    get name(): string;
    get type(): import("@signalwire/core").VideoMemberType;
    get meta(): Record<string, unknown> | undefined;
    get requestedPosition(): import("@signalwire/core").VideoPosition;
    get currentPosition(): import("@signalwire/core").VideoPosition | undefined;
    get visible(): boolean;
    get audioMuted(): boolean;
    get videoMuted(): boolean;
    get deaf(): boolean;
    get inputVolume(): number;
    get outputVolume(): number;
    get inputSensitivity(): number;
    get talking(): boolean;
    get handraised(): boolean;
    remove(): Promise<void>;
}
export declare const RoomSessionMemberAPI: import("@signalwire/core").ConstructableType<RoomSessionMember>;
//# sourceMappingURL=RoomSessionMember.d.ts.map