import type { Dictionary, Router, EventBus, Utils } from '@ima/core';
import type { defaultCssClasses } from '../componentHelpers';
export interface useComponentType {
    utils: Utils;
    cssClasses: typeof defaultCssClasses;
    localize: Dictionary['get'];
    link: Router['link'];
    fire: EventBus['fire'];
    listen: EventBus['listen'];
    unlisten: EventBus['unlisten'];
}
/**
 * "Constructor" like hook, which makes sure, that provided callback
 * is called only once during component's lifecycle.
 *
 * @example
 * useOnce(() => {
 * 	oneTimeAction();
 * });
 *
 * @param {Function} callback
 */
export declare function useOnce(callback: () => void): void;
/**
 * Base hook you can use to initialize your component.
 *
 * Returns object, which gives you access to the same features you would
 * get in your class component:
 *  - Utility methods: cssClasses, localize, link, fire, listen, unlisten.
 *  - Objects: utils (=== ComponentUtils).
 *
 * @example
 * const { utils, cssClasses } = useComponent();
 *
 * @returns Object containing context data and utility methods.
 */
export declare function useComponent(): useComponentType;
//# sourceMappingURL=component.d.ts.map