export default class Core extends Base {
    /**
     * @typedef {Object} BonaOptions
     * @property {boolean} [init] Initialize an app immediately.
     * @property {Object[]} [define] Array of components to define.
     */
    /**
     * Initializes the core.
     *
     * @param {BonaOptions} [options] Options.
     */
    constructor(options?: {
        /**
         * Initialize an app immediately.
         */
        init?: boolean;
        /**
         * Array of components to define.
         */
        define?: any[];
    });
    /** @type {BonaOptions} **/
    options: {
        /**
         * Initialize an app immediately.
         */
        init?: boolean;
        /**
         * Array of components to define.
         */
        define?: any[];
    };
    store: Map<any, any>;
    registry: Map<any, any>;
    isFullyLoaded: boolean;
    /**
     * Performs basic hooks.
     *
     * @return {Promise}
     */
    init(): Promise<any>;
    /**
     * Refresh component store.
     *
     * @param {boolean} [fireRefresh] Fire refresh hook in instances.
     * @param {boolean} [fireDestroy] Fire destroy hook when detach non-existent nodes.
     * @param {boolean} [detachNodes] Detach non-existent nodes from store.
     * @return {Promise}
     */
    refresh(fireRefresh?: boolean, fireDestroy?: boolean, detachNodes?: boolean): Promise<any>;
    /**
     * Execute hooks in all instances.
     *
     * @param {string} [hook] Hook name.
     * @return {Promise}
     */
    executeAll(hook?: string): Promise<any>;
    /**
     * Execute hook in an instance.
     *
     * @param {Component} instance Component instance.
     * @param {string} [hook] Hook name.
     * @return {Promise}
     */
    executeInstance(instance: Component, hook?: string): Promise<any>;
    /**
     * Wait until the component hook is completed.
     *
     * @param {string} namespace Namespace.
     * @param {string} [hook] Hook name.
     * @param {number} [index] Instance index.
     * @return {Promise}
     */
    wait(namespace: string, hook?: string, index?: number): Promise<any>;
    /**
     * Wait until hooks are completed in all instances.
     *
     * @param {string} namespace Namespace.
     * @param {string} [hook] Hook name.
     * @return {Promise}
     */
    waitAll(namespace: string, hook?: string): Promise<any>;
    /**
     * Wait until the hook is completed in an instance.
     *
     * @param {Component} instance Component instance.
     * @param {string} [hook] Hook name.
     * @return {Promise}
     */
    waitInstance(instance: Component, hook?: string): Promise<any>;
    /**
     * Wait until the page has fully loaded.
     *
     * @return {Promise}
     */
    waitFullLoad(): Promise<any>;
    /**
     * Create component instance in the store.
     *
     * @param {string} namespace Namespace.
     * @param {HTMLElement} [el] Element.
     * @param {Object} [options] Options that will pass to instance.
     * @param {boolean} [fireInit] Fire init hook.
     * @return {Component} Component instance.
     */
    attach(namespace: string, el?: HTMLElement, options?: any, fireInit?: boolean): Component;
    /**
     * Remove component instance from store.
     *
     * @param {Component} instance Component instance.
     * @param {boolean} [fireDestroy] Fire destroy hook.
     * @return {Component} Component instance.
     */
    detach(instance: Component, fireDestroy?: boolean): Component;
    /**
     * Register component.
     *
     * @param {string} namespace Namespace.
     * @param {Object} component Component class.
     * @param {string} [assign] Assigned DOM selector.
     * @param {Object} [options] The options object that will be passed to each instance.
     */
    define(namespace: string, component: any, assign?: string, options?: any): void;
    /**
     * Register array of components.
     */
    defineAll(arr: any): void;
    /**
     * Return component instance.
     *
     * @param {string} namespace Namespace.
     * @param {number} [index] Instance index.
     * @return {Component|*} Component instance.
     */
    get(namespace: string, index?: number): Component | any;
    /**
     * Return all component instances.
     *
     * @param {string} namespace Namespace.
     * @return {Component[]|*[]} Array of component instances.
     */
    getAll(namespace: string): Component[] | any[];
    /**
     * Find component instance that matches a CSS selector.
     *
     * @param {string|Element} selector Selector or node.
     * @param {string} [namespace] Namespace.
     * @param {number} [index] Instance index.
     * @return {Component|*} Component instance.
     */
    find(selector: string | Element, namespace?: string, index?: number): Component | any;
    /**
     * Find all component instances that match a CSS selector.
     *
     * @param {string|Element} selector Selector or node.
     * @param {string} [namespace] Namespace.
     * @return {Component[]|*[]} Array of component instances.
     */
    findAll(selector: string | Element, namespace?: string): Component[] | any[];
    /**
     * Returns the first element that matches a CSS selector.
     *
     * @param {string|Object} selector Selector.
     * @return {null|Element|Object}
     */
    query(selector: string | any): null | Element | any;
    /**
     * Returns all elements that match a CSS selector.
     *
     * @param {string|Object} selector Selector.
     * @return {Element[]|Object}
     */
    queryAll(selector: string | any): Element[] | any;
}
import Base from "../base";
//# sourceMappingURL=index.d.ts.map