import { DirectiveBase, type DirectiveArgs } from '../Abstracts/DirectiveBase';
/**
 * Represents the `IIntersectionDirectiveOptions` interface.
 *
 * @public
 */
export interface IIntersectionDirectiveOptions {
    cb(ref: IIntersectionRef): void;
}
export interface IIntersectionRef {
    register(element: HTMLElement): void;
}
/**
 * @private
 */
declare class IntersectionDirective extends DirectiveBase {
    private readonly _intersectionController;
    private readonly _intersectionEntries;
    private readonly _ref;
    /**
     * Constructs a new instance of the `IntersectionDirective` class.
     *
     * @public
     */
    constructor(args: DirectiveArgs);
    /**
     * @public
     */
    render(cb: (ref: IIntersectionRef) => void): unknown;
}
/**
 * @private
 */
declare class IntersectionEntryDirective extends DirectiveBase {
    /**
     * Constructs a new instance of the `IntersectionDirective` class.
     *
     * @public
     */
    constructor(args: DirectiveArgs);
    render(ref: IIntersectionRef): unknown;
}
/**
 * The `intersection` directive.
 *
 * @public
 */
export declare const intersection: (...values: Parameters<IntersectionDirective["render"]>) => any;
/**
 * The `intersectionEntry` directive.
 *
 * @public
 */
export declare const intersectionEntry: (...values: Parameters<IntersectionEntryDirective["render"]>) => any;
export {};
//# sourceMappingURL=IntersectionDirective.d.ts.map