import { type MaybePromise } from '@augment-vir/common';
import { type PartInfo } from '../../lit-exports/all-lit-exports.js';
/**
 * The callback / listener passed to {@link onDomRendered}. The `element` parameter is a reference to
 * the DOM element that the directive was attached to.
 *
 * @category Internal
 */
export type OnDomRenderedCallback = (element: Element) => MaybePromise<void>;
/**
 * A directive that fires its listener each time the element that it's attached to is rendered.
 *
 * @category Directives
 * @example
 *
 * ```ts
 * import {html, defineElement, onDomRendered} from 'element-vir';
 *
 * const MyElement = defineElement()({
 *     tagName: 'my-element',
 *     render() {
 *         return html`
 *             <div
 *                 ${onDomRendered((element) => {
 *                     console.log('rendered!', element);
 *                 })}
 *             >
 *                 Some div
 *             </div>
 *         `;
 *     },
 * });
 * ```
 */
export declare const onDomRendered: (callback: OnDomRenderedCallback) => import("lit-html/directive.js").DirectiveResult<{
    new (partInfo: PartInfo): {
        update(partInfo: PartInfo, [callback]: [OnDomRenderedCallback]): undefined;
        render(callback: OnDomRenderedCallback): undefined;
        readonly _$isConnected: boolean;
    };
}>;
