/// <reference types="react" />
import { RoleType, ThemeBodyType } from "../utils/dyte-utils/src";
export declare type ThemeControlBarElement = {
    plugins?: boolean;
    screenshare?: boolean;
    invite?: boolean;
    participants?: boolean;
    chat?: boolean;
    reactions?: boolean;
    polls?: boolean;
    fullscreen?: boolean;
    layout?: boolean;
};
export declare type ThemeControlBar = {
    is_enabled: boolean;
    elements?: ThemeControlBarElement;
};
export declare type ThemeWaitingRoom = {
    is_enabled: boolean;
    enable_preview?: boolean;
    element?: HTMLElement | string;
};
export declare type ThemeHeader = {
    is_enabled: boolean;
    elements?: ThemeHeaderElement;
};
export declare type ThemeHeaderElement = {
    timer?: boolean;
    title?: boolean;
    logo?: string;
    participant_count?: boolean;
    change_layout?: boolean;
};
export declare type ThemeColor = {
    primary: string;
    secondary: string;
    text: string;
    background: string;
};
export declare type ThemeDimention = {
    width: number;
    height: number;
};
export declare enum WaitingRoomTypes {
    skip = "SKIP",
    onAccept = "ON_ACCEPT",
    skipOnPrivilegedUserEntry = "SKIP_ON_PRIVILEGED_USER_ENTRY",
    skipOnAccept = "ON_ACCEPT"
}
declare type PluginConfig = {
    defaultAccess: 'blacklist' | 'whitelist';
    handlesViewOnly?: boolean;
};
export declare type PluginPermissionsTypes = {
    can_close: boolean;
    can_start: boolean;
    can_edit_acl?: boolean;
    config?: {
        [pluginId: string]: PluginConfig;
    };
};
export declare type PollsPermissionsTypes = {
    can_create: boolean;
    can_vote: boolean;
    can_view: boolean;
};
export declare type ProducePermissionsTypes = {
    video: StreamPermissionTypes;
    audio: boolean;
    screenshare: StreamPermissionTypes;
};
export declare type StreamPermissionTypes = {
    allow: boolean;
    quality: 'hd' | 'vga' | 'qvga' | 'full';
    frame_rate: number;
};
export declare type ChatPermissionTypes = {
    public: PublicChatPermissionTypes;
    private?: PrivateChatPermissionTypes;
};
export declare type PublicChatPermissionTypes = {
    can_send: boolean;
    text: boolean;
    files: boolean;
};
export declare type PrivateChatPermissionTypes = {
    can_send: boolean;
    can_receive: boolean;
    text: boolean;
    files: boolean;
};
export declare enum DyteViewTypes {
    groupCall = "GROUP_CALL",
    webinar = "WEBINAR",
    audioRoom = "AUDIO_ROOM"
}
export declare type AloneHereType = {
    is_enabled: boolean;
    element?: HTMLElement;
};
export declare type ThemeGridType = {
    multi: {
        maxVideoCount: number;
        videoFit: string;
    };
    single: {
        maxVideoCount: number;
        videoFit: string;
    };
    defaultView: string;
};
export declare type DefaultDyteConfig = {
    theme: ThemeBodyType;
    permissions: RoleType;
};
export declare enum WebinarAcceptRequestType {
    REQUESTED_BY_PARTICIPANT = 0,
    REQUESTED_BY_MODERATOR = 1
}
export {};
