import type { Viewport } from '../Viewport.js';
import { Container, type Props as ContainerProps } from '../Container.js';
import { Size } from '../geometry.js';
interface Props extends ContainerProps {
    /**
     * Called during render with the available content size. Use this to implement
     * virtualized/windowed rendering where you need to know the viewport dimensions
     * before deciding what to render.
     */
    onLayout?: (size: Size) => void;
}
/**
 * A container that reports its available size via onLayout callback. Defaults to
 * filling all available space (width='fill', height='fill') unless explicit
 * dimensions are provided.
 *
 * Useful for:
 * - Measuring available space before deciding what to render
 * - Virtualized lists that need viewport height to calculate visible items
 * - Responsive layouts that change based on available space
 */
export declare class Geometry extends Container {
    #private;
    constructor({ onLayout, ...props }: Props);
    update({ onLayout, ...props }: Props): void;
    naturalSize(available: Size): Size;
    render(viewport: Viewport): void;
}
export {};
