/**
 * Chat log with TextArea and TextAreaInput, attached by to HUD.
 * By default alligned to left side of the screen.
 */
export class ChatLog extends TextArea {
    static instanceCount: number;
    static instances: {};
    /** @type {ChatLog} */
    static activeInstance: ChatLog;
    static instanceId(name: any, title: any): string;
    /** @return {ChatLog} */
    static findInstance(title: any, name?: string): ChatLog;
    static getInstance(scene: any, title: any, name?: string): any;
    constructor(scene: any, title: any, name?: string);
    input: ChatLogInput;
    inputPrefix: string;
    showLinks: boolean;
    minimizeInput: boolean;
    minimizeTitle: boolean;
    autoHide: boolean;
    baseAnchor: number;
    verticalAnchor: number;
    anchor: number;
    linkStack: LinkStack;
    listeners: any[];
    instanceId(): string;
    resizeHandler: () => void;
    /**
     * Log something written by someone.
     * @param {String} who who wrote that
     * @param {String} what what they wrote
     * @param {String} link optional url to open
     */
    log(who: string, what: string, link: string, local: any): void;
    /**
     * Move to left side of the screen
     */
    leftSide(): void;
    /**
     * Move to right side of the screen
     */
    rightSide(): void;
    /**
     * Move either left or right, whatever is the current anchor
     */
    moveToAnchor(): void;
    /**
     * Handle window resize, recalculates the current anchor and positions appropriatelly.
     */
    handleResize(): void;
    hasLink(line: any): boolean;
    processLinks(line: any): void;
    showLink(word: any, enterWorld: any, local: any): void;
    setActiveInstance(): void;
    clearActiveInstance(): void;
    notifyListeners(text: any, link: any): void;
    /**
     * Add a listener to be called when input text is changed
     */
    addListener(listener: any): void;
    /** Remove a listener */
    removeListener(listener: any): void;
}
import { TextArea } from './text-area.js';
declare class ChatLogInput extends TextAreaInput {
    inputFocused(input: any, focused: any): void;
}
declare class LinkStack {
    /** @type {ServerCapabilities} */
    static serverCapablities: ServerCapabilities;
    constructor(scene: any, parent: any, position: any, scaling?: any);
    scene: any;
    parent: any;
    scaling: any;
    position: any;
    capacity: number;
    links: any[];
    meshes: any[];
    clickHandler: any;
    addLink(word: any, enterWorld: any, local: any): Link;
    addButton(link: any, name: any, callback: any): void;
    /** @param {Link} link */
    clicked(link: Link): Promise<void>;
    openBrowser(url: any): void;
    browser: RemoteBrowser;
    scroll(): void;
    dispose(): void;
    isSelectableMesh(mesh: any): any;
}
import { TextAreaInput } from './text-area-input.js';
declare class Link {
    constructor(text: any, enterWorld?: boolean);
    url: any;
    enterWorld: boolean;
    site: any;
    label: any;
    buttons: any[];
    openHere(local: any): void;
    openTab(): void;
    dispose(): void;
}
import { RemoteBrowser } from './remote-browser.js';
import { ServerCapabilities } from '../../client/openapi/model/ServerCapabilities.js';
export {};
