import { type MaybePromise } from '@augment-vir/common';
import { type PartInfo } from '../../lit-exports/all-lit-exports.js';
/**
 * The callback / listener passed to {@link onDomCreated}. The `element` parameter is a reference to
 * the DOM element that the directive was attached to.
 *
 * @category Internal
 */
export type OnDomCreatedCallback = (element: Element) => MaybePromise<void>;
/**
 * A directive that fires its listener only once, when the element that it's attached to is
 * constructed. This is particularly useful for getting references to internal elements immediately
 * after they've rendered.
 *
 * @category Directives
 * @example
 *
 * ```ts
 * import {html, defineElement, onDomCreated} from 'element-vir';
 *
 * const MyElement = defineElement()({
 *     tagName: 'my-element',
 *     render() {
 *         return html`
 *             <div
 *                 ${onDomCreated((element) => {
 *                     console.log('created!', element);
 *                 })}
 *             >
 *                 Some div
 *             </div>
 *         `;
 *     },
 * });
 * ```
 */
export declare const onDomCreated: (callback: OnDomCreatedCallback) => import("lit-html/directive.js").DirectiveResult<{
    new (partInfo: PartInfo): {
        element: Element | undefined;
        update(partInfo: PartInfo, [callback]: [OnDomCreatedCallback]): undefined;
        render(callback: OnDomCreatedCallback): undefined;
        readonly _$isConnected: boolean;
    };
}>;
