import { Video } from '@prisma/client';
import React from 'react';
import { Colors, Theme } from '../Theme';
import { LocaleServer, LogLevel } from './interfaces';
export declare type VideoFull = Video;
export interface GlobalProps {
    server: string;
    roomId: string | number;
    port: number;
    userId: string | number;
    name?: string;
    token?: string;
    theme?: Theme;
    videoRecord?: boolean;
    iceServers?: RTCConfiguration['iceServers'];
    colors?: Colors;
    logLevel?: LogLevel;
    backLinks?: React.ReactNode | React.ReactNode[] | string | null;
}
export declare type RoomProps = GlobalProps & {
    locale: LocaleServer['client'];
};
export declare type HallProps = Required<Omit<GlobalProps, 'iceServers' | 'theme' | 'colors' | 'logLevel'>> & {
    open: boolean;
    locale: LocaleServer['client'];
    theme?: Theme;
};
export declare type SettingsProps = Required<Omit<GlobalProps, 'iceServers' | 'theme' | 'colors' | 'logLevel' | 'backLinks'>> & {
    open: boolean;
    locale: LocaleServer['client'];
    theme?: Theme;
};
export declare type ChatProps = Omit<HallProps, 'open' | 'backLinks' | 'videoRecord'>;
export interface Stream {
    target: number | string;
    name: string;
    isOwner: boolean;
    stream: MediaStream;
    connId: string;
    ref: React.Ref<HTMLVideoElement>;
    hidden?: boolean;
}
export interface AlertProps {
    children: string;
    type: keyof typeof LogLevel;
    open: boolean;
    theme?: Theme;
}
export declare type DialogPropsDefaultContext = {
    id: number;
    unitId: string;
    text: string;
};
export declare type DialogPropsUsersContext = {
    unitId: string;
    isOwner: boolean;
};
export interface DialogProps<T> {
    open: boolean;
    children: React.ReactNode;
    clientX: number;
    clientY: number;
    width: number;
    height: number;
    context: T;
    secure?: boolean;
    theme?: Theme;
}
export declare type ThemeType = 'light' | 'dark';
export declare type ClickPosition = {
    clientX: number;
    clientY: number;
};
export declare type Volumes = Record<string, number>;
export declare type VideoRecorderState = 'start' | 'stop';
