export class AvatarSelection extends World {
    constructor();
    /** server to connect to */
    serverUrl: any;
    /** content base, defaults to VRSPACEUI.contentBase */
    contentBase: string;
    /** background base dir, null defaults to contentBase+"/content/skybox/mp_drakeq/drakeq" (box)
    or "/content/skybox/eso_milkyway/eso0932a.jpg" (panoramic)*/
    backgroundPath: any;
    /** Is backgroundPath a panoramic image? Default false (directory containing 6 images) */
    backgroundPanorama: boolean;
    /** character base dir, null defaults to contentBase+'/content/char/' */
    characterPath: any;
    /** character animation folder, null defaults to contentBase+'/content/rpm-anim/' */
    animationPath: any;
    /** world base dir, null defaults to contentBase+'/content/worlds' */
    worldPath: any;
    /** function to call just before entering a world */
    beforeEnter: any;
    /** function to call after entering a world */
    afterEnter: any;
    /** function to call after exiting a world */
    afterExit: any;
    /** whether to list animations after character loads, default true */
    showAnimationButtons: boolean;
    /** enable oauth2 login form, default true */
    enableLogin: boolean;
    /** wheter to display own video avatar, default true */
    displayOwnVideo: boolean;
    /** custom video avatar options, default null */
    customOptions: any;
    /** movement tracking/animation frames per second */
    fps: number;
    /** Enable Oauth2 login */
    oauth2enabled: boolean;
    oauth2providerId: string;
    /** default user height, 1.8 m */
    userHeight: number;
    /** is anonymous entry (guest login) allowed */
    anonymousAllowed: boolean;
    /** enable plenty of debug info */
    debug: boolean;
    /** z position of character and animation buttons */
    buttonsZ: number;
    mirror: boolean;
    authenticated: boolean;
    customAnimations: any[];
    trackTime: number;
    trackDelay: number;
    /** @type {VRSpaceAPI} */
    api: VRSpaceAPI;
    tokens: {};
    serviceWorker: string;
    autoEnter: Portal;
    /** @type {HumanoidAvatar} */
    character: HumanoidAvatar;
    /** @type {VideoAvatar} */
    video: VideoAvatar;
    createSkyBox(): Promise<any>;
    createLights(): Promise<any>;
    hemisphere: any;
    room: LogoRoom;
    hud: DefaultHud;
    loginForm: LoginForm;
    webpushSubscribe(): void;
    checkValidName(): boolean;
    backgroundDir(): any;
    characterDir(): any;
    animationDir(): any;
    worldDir(): any;
    isSelectableMesh(mesh: any): any;
    load(name: any, file: any): void;
    calcControllerPos(arm: any, side: any): any;
    calcControllerRot(arm: any, side: any): void;
    calcCameraTarget(): any;
    listAnimations(): void;
    createSelection(selectionCallback: any): void;
    selectionCallback: any;
    mainButtons: Buttons;
    createAvatarSelection(folder: any): Promise<void>;
    characterButtons: Buttons;
    createVideoAvatar(): Promise<void>;
    removeVideoAvatar(): void;
    createCustomAvatar(): Promise<void>;
    loadCharacterUrl(url: any): Promise<void>;
    /**
     * @param {ServerFolder} dir
     */
    loadCharacter(dir: ServerFolder, file?: string): void;
    tracking: boolean;
    setMyName(name: any): void;
    userName: any;
    getMyName(): any;
    animationButtons(avatar: any): void;
    animationSelection: Buttons;
    startAnimation(name: any): void;
    addCharacterButtons(): void;
    guiManager: any;
    resizeButton: any;
    mirrorButton: any;
    removeCharacterButtons(): void;
    /**
     * Show portals, typically called from html.
     * Sets internal variable this.portals.
     */
    showPortals(): void;
    portals: {};
    /**
     * Show portals to public worlds avaliable under content/worlds server directory.
     */
    showContentPortals(): void;
    showActiveUsers(): void;
    portalsEnabled(enable: any): void;
    hasAvatar(): boolean;
    removePortals(): void;
    avatarUrl(defaultUrl?: string): string;
    autoEnterPortal(): void;
    enterPortal(portal: any): Promise<void>;
    /**
     * Enter a world.
     * TODO quite complex method, order matters. This needs to be moved to a utility method, to allow entering one world from another.
     */
    enterWorld(worldUrl: any, worldName: any, avatarUrl?: string, worldScript?: string): Promise<void>;
    dispose(): void;
}
import { World } from './js/vrspace-min.js';
import { VRSpaceAPI } from './js/vrspace-min.js';
import { Portal } from './js/vrspace-min.js';
import { HumanoidAvatar } from './js/vrspace-min.js';
import { VideoAvatar } from './js/vrspace-min.js';
import { LogoRoom } from './js/vrspace-min.js';
import { DefaultHud } from './js/vrspace-min.js';
import { LoginForm } from './js/vrspace-min.js';
import { Buttons } from './js/vrspace-min.js';
import { ServerFolder } from './js/vrspace-min.js';
