import { BaseComponentContract, BaseRPCResult, FabricLayoutChangedEventParams, Rooms, VideoMemberEntity, VideoPosition, BaseConnectionContract, FabricRoomSessionMethods, MemberCommandParams, MemberCommandWithVolumeParams, MemberCommandWithValueParams, SetAudioFlagsParams } from '@signalwire/core';
import { BaseRoomSessionConnection, BaseRoomSessionOptions } from '../BaseRoomSession';
import { BaseRoomSessionContract, FabricRoomSessionContract, FabricRoomSessionEvents } from '../utils/interfaces';
import { FabricRoomSessionMember } from './FabricRoomSessionMember';
import { CallCapabilitiesContract } from './interfaces/capabilities';
export interface FabricRoomSession extends FabricRoomSessionContract, FabricRoomSessionMethods, BaseRoomSessionContract, BaseConnectionContract<FabricRoomSessionEvents>, BaseComponentContract {
}
export interface FabricRoomSessionOptions extends Omit<BaseRoomSessionOptions, 'customSagas'> {
}
export declare class FabricRoomSessionConnection extends BaseRoomSessionConnection<FabricRoomSessionEvents> implements FabricRoomSessionContract {
    private _self?;
    private _member?;
    private _currentLayoutEvent;
    private _capabilities?;
    constructor(options: FabricRoomSessionOptions);
    get memberId(): string | undefined;
    dialogParams(rtcPeerId: string): {
        dialogParams: {
            id: string;
            destinationNumber: string | undefined;
            attach: boolean | undefined;
            reattaching: boolean | undefined;
            callerName: string | undefined;
            callerNumber: string | undefined;
            remoteCallerName: string | undefined;
            remoteCallerNumber: string | undefined;
            userVariables: {
                [key: string]: any;
            } | undefined;
            screenShare: boolean | undefined;
            additionalDevice: boolean | undefined;
            fromFabricAddressId: string | undefined;
            pingSupported: boolean;
            version: number;
        };
    };
    set currentLayoutEvent(event: FabricLayoutChangedEventParams);
    get currentLayoutEvent(): FabricLayoutChangedEventParams;
    get currentLayout(): import("@signalwire/core").InternalVideoLayout;
    get currentPosition(): VideoPosition | undefined;
    get capabilities(): CallCapabilitiesContract | undefined;
    set capabilities(capabilities: CallCapabilitiesContract | undefined);
    get selfMember(): FabricRoomSessionMember | undefined;
    set selfMember(member: FabricRoomSessionMember | undefined);
    set member(member: FabricRoomSessionMember);
    get member(): FabricRoomSessionMember;
    private initWorker;
    private join;
    private executeAction;
    /** @internal */
    resume(): Promise<void>;
    start(): Promise<void>;
    audioMute(params?: MemberCommandParams): Promise<BaseRPCResult>;
    audioUnmute(params?: MemberCommandParams): Promise<BaseRPCResult>;
    videoMute(params?: MemberCommandParams): Promise<BaseRPCResult>;
    videoUnmute(params?: MemberCommandParams): Promise<BaseRPCResult>;
    deaf(params?: MemberCommandParams): Promise<BaseRPCResult>;
    undeaf(params?: MemberCommandParams): Promise<BaseRPCResult>;
    getLayouts(): Promise<{
        layouts: string[];
    }>;
    getMembers(): Promise<{
        members: VideoMemberEntity[];
    }>;
    removeMember(params: Required<MemberCommandParams>): Promise<BaseRPCResult>;
    setRaisedHand(params?: Rooms.SetRaisedHandRoomParams): Promise<BaseRPCResult>;
    setLayout(params: Rooms.SetLayoutParams): Promise<BaseRPCResult>;
    setInputVolume(params: MemberCommandWithVolumeParams): Promise<BaseRPCResult>;
    setOutputVolume(params: MemberCommandWithVolumeParams): Promise<BaseRPCResult>;
    setInputSensitivity(params: MemberCommandWithValueParams): Promise<BaseRPCResult>;
    setPositions(params: Rooms.SetPositionsParams): Promise<unknown>;
    lock(): Promise<BaseRPCResult>;
    unlock(): Promise<BaseRPCResult>;
    setAudioFlags(params: SetAudioFlagsParams): Promise<BaseRPCResult>;
    end(params?: MemberCommandParams): Promise<BaseRPCResult>;
}
export declare const isFabricRoomSession: (room: unknown) => room is FabricRoomSession;
/** @internal */
export declare const createFabricRoomSessionObject: (params: FabricRoomSessionOptions) => FabricRoomSession;
//# sourceMappingURL=FabricRoomSession.d.ts.map