import { Application } from "pixi.js";
import { IRendererConfiguration } from "./interfaces/Configuration.interface";
import { Logger } from "./utilities/Logger";
/**
 * Convenience class to create a new Scuti renderer.
 *
 * This class automatically load all the needed resources and initialise the PixiJS application.
 * @example
 * import { Scuti } from 'scuti-renderer';
 *
 * // Create the renderer
 * const renderer = new Scuti({
 *     canvas: document.getElementById("app"),
 *     width: window.innerWidth,
 *     height: window.innerHeight,
 *     resources: './resources'
 * });
 * await renderer.loadResources();
 *
 * @class
 * @memberof Scuti
 */
export declare class Scuti {
    private configuration;
    /**
     * The canvas that will be used to render the PixiJS canvas.
     *
     * @member {HTMLElement}
     * @private
     */
    private _canvas;
    /**
     * The PixiJS application instance that will be used to render everything.
     *
     * @member {Application}
     * @private
     */
    private _application;
    /**
     * The renderer logger instance.
     *
     * @member {Logger}
     * @private
     */
    private _logger;
    /**
     * @param {IRendererConfiguration} [configuration] - The renderer configuration.
     * @param {HTMLElement} [configuration.canvas] - The canvas that will be used to render everything.
     * @param {number} [configuration.width] - The width of the render part.
     * @param {number} [configuration.height] - The height of the render part.
     * @param {string} [configuration.resources] - The URL of the resource server.
     **/
    constructor(configuration: IRendererConfiguration);
    /**
     * It loads all the resources that are essentials for rendering rooms and objects.
     * It's necessary to call this method just after the instanciation of this class.
     *
     * @member {Promise<void>}
     * @public
     */
    loadResources(domain?: string): Promise<void>;
    /**
     * Reference to the PixiJS application instance.
     *
     * @member {Application}
     * @readonly
     * @public
     */
    get application(): Application;
    /**
     * Reference to the renderer logger instance.
     *
     * @member {Logger}
     * @readonly
     * @public
     */
    get logger(): Logger;
}
