import { ControllerBase, type ControllerHost } from './Abstracts/ControllerBase';
/**
 * Represents the `IIntersectionAnchorControllerConfig` interface.
 *
 * @public
 */
export interface IIntersectionAnchorControllerConfig {
    config?: {
        rootMargin?: string;
        threshold?: number | Array<number>;
    };
    target?: Element | string;
    anchor?: {
        top?: Element | string;
        bottom?: Element | string;
    };
    callback?: (anchor: {
        isAtScrollTop: boolean;
        isAtScrollBottom: boolean;
    }) => void;
}
/**
 * IntersectionAnchorController - This controller is used to observe the intersection of an element with the top and bottom of the viewport.
 *
 * @public
 */
export declare class IntersectionAnchorController extends ControllerBase {
    private readonly _observer;
    private readonly _anchor;
    private readonly _callback?;
    constructor(host: ControllerHost, config: IIntersectionAnchorControllerConfig);
    /**
     * @public
     * @override
     */
    hostConnected(): void;
    /**
     * @public
     * @override
     */
    hostDisconnected(): void;
    /**
     * @public
     */
    protected disconnect(): void;
    /**
     * @public
     */
    protected handleChanges(entries: Array<IntersectionObserverEntry>): void;
    private tryGetElement;
}
//# sourceMappingURL=IntersectionAnchorController.d.ts.map