import Component from '@glimmer/component';
type Size = {
    height: number;
    width: number;
};
interface EuiAutoSizerComponentArgs {
    /** Function responsible for rendering children.*/
    /** Optional custom CSS class name to attach to root AutoSizer element.  */
    className?: string;
    /** Default height to use for initial render; useful for SSR */
    defaultHeight?: number;
    /** Default width to use for initial render; useful for SSR */
    defaultWidth?: number;
    /** Disable dynamic :height property */
    disableHeight?: boolean;
    /** Disable dynamic :width property */
    disableWidth?: boolean;
    /** Nonce of the inlined stylesheet for Content Security Policy */
    nonce?: string;
    /** Callback to be invoked on-resize */
    onResize?: (size: Size) => void;
    /** Optional inline style */
    style?: Record<string, string>;
}
type ResizeHandler = (element: HTMLElement, onResize: () => void) => void;
type DetectElementResize = {
    addResizeListener: ResizeHandler;
    removeResizeListener: ResizeHandler;
};
type DynamicStyle = {
    outerStyle: {
        height?: number | string;
        width?: number | string;
        overflow?: string;
    };
    childStyle?: {
        height?: number | string;
        width?: number | string;
    };
};
export interface EuiAutoSizerSignature {
    Args: EuiAutoSizerComponentArgs;
    Element: HTMLDivElement;
    Blocks: {
        default: [DynamicStyle['childStyle']];
    };
}
export default class EuiAutoSizerComponent extends Component<EuiAutoSizerSignature> {
    _autoSizer?: HTMLElement;
    _parentNode?: HTMLElement;
    _window?: any;
    _detectElementResize?: DetectElementResize;
    height: number | undefined;
    width: number | undefined;
    get disableHeight(): boolean;
    get disableWidth(): boolean;
    get style(): DynamicStyle;
    setup(): void;
    _onResize: () => void;
    setRef: (ele: HTMLElement) => void;
    willDestroy(): void;
}
export {};
//# sourceMappingURL=eui-auto-sizer.d.ts.map